如何在Google脚本中获取非空白单元格的范围

时间:2019-05-30 06:50:22

标签: javascript google-apps-script google-sheets

我正在尝试获取K列中没有空白单元格的行的值。

  var spreadsheet = SpreadsheetApp.getActive();
  var bigrange = spreadsheet.getSheetByName('sheet').getRange("K2:K").getValues();
//  var smallrange= bigrange .filter(String);

  for (var i=0; i < smallrange.length; i++) {

var calId = spreadsheet.getSheetByName('sheet').getRange("M" + [i+ 2]).getValue();    

}

如果我不使用.filter(String),则上面的代码有效。但是由于我的数据很大,并且K2:K范围的大部分为空白,我认为我应该使用.filter(String)。

获取K2:K中不为空的少数单元格范围的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

这个答案怎么样?

模式1:

  • 工作表名称为sheet。在此工作表中,您希望在“ K”列的单元格为空时检索范围。

如果我的理解是正确的,那么该修改如何?

修改后的脚本:

首先,在此修改后的脚本中,从“ K2:K”中检索值。然后,从值中检索范围。

var sheetName = "sheet"; // Please set the sheet name here.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var values = sheet.getRange("K2:K").getValues();
var ranges = values.map(function(e, i) {return e[0] ? sheetName + "!K" + (i + 2) : ""}).filter(String);
Logger.log(ranges)

模式2:

  • 工作表名称为sheet。在此工作表中,您希望在“ K”列的单元格为空时检索“ M”列的值。

从您的问题和脚本来看,我也理解如上。如果我的理解是正确的,那么该修改如何?

修改后的脚本:

首先,在此修改后的脚本中,从“ A2:M”中检索值。然后,检索列“ K”为空时列“ M”的值。

var sheetName = "sheet"; // Please set the sheet name here.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var values = sheet.getRange("A2:M").getValues();
var res = values.map(function(e) {return e[10] ? e[12] : ""}).filter(String);
Logger.log(res)

注意:

  • 在这两个修改后的脚本中,假设您想从一张sheet的工作表中检索值。

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。