【问题标题】:Why is getDataRange.getValues() not pulling all the required values?为什么 getDataRange.getValues() 没有提取所有必需的值?
【发布时间】:2020-04-07 16:51:59
【问题描述】:

我有一个电子表格,我想使用 google 脚本(基于 JS)将所有数据放入一个数组中,然后在该数组中搜索信息。我下面的代码不起作用,并且在记录器中没有返回任何内容:

function openNCR() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var NCRData = ss.getSheets()[1];
  var data = NCRData.getDataRange.getValues();
  var search = 'Open NCR'
  var target_rows = []

  data.forEach(function(element, index) {
    if (element == search) {
      target_rows.push(index)
    }
  })

  Logger.log(target_rows);
}

然而,当我在如何提取信息方面进行以下更改时,代码运行良好!上面和下面的主要区别是什么? getDataRange.getValues 不会提取该工作表中的所有值吗?如果是这种情况,那么为什么我需要定义一个特定的列来搜索如下(第 3 列是包含“Open NCR”或“Closed NCR”信息的列)?

function openNCR() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var NCRData = ss.getSheets()[1];
  var data = NCRData.getRange(1, 3, NCRData.getLastRow()).getValues()
  var search = 'Open NCR'
  var target_rows = []

  data.forEach(function(element, index) {
    if (element == search) {
      target_rows.push(index)
    }
  })

  Logger.log(target_rows);
}

【问题讨论】:

标签: javascript excel google-sheets scripting


【解决方案1】:

.getDataRange() 是“Sheet”类中的一个方法,因此需要括号。

 var data = NCRData.getDataRange().getValues();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多