仅获取Google App Script getRange的未过滤值

时间:2017-06-18 14:38:54

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

有没有办法只在Google App Script中获取非过滤值? (即获取显示的值而不是隐藏的值?

例如,假设我在Google表格中有以下单元格+值。

A1=abc    B1=x
A2=def    B2=y
A3=ghi    B3=y
A4=kjl    B4=x

我过滤了B列,因此只显示[y]。

A2=def    B2=y
A2=ghi    B3=y

当我使用以下脚本时,隐藏和非隐藏值都会打印到msgBox。

function msgBoxTest(){

var ss = SpreadsheetApp.getActiveSpreadsheet();
var lastColumn = ss.getLastColumn();
var range_input = ss.getRange("A1:A").getValues();
var result = [i for each (i in range_input)if (isNaN(i))]; 
// remove commas originating from empty cells

Browser.msgBox(result);  
//I want only def & ghi to display here. 
//Instead, I get all values -> abc,def,ghi,kjl
}

我已经用谷歌搜索并查看了在线但无法找到有关在Google App脚本中过滤掉值的代码。有什么建议?

1 个答案:

答案 0 :(得分:2)

如果你想使用脚本,可以这样做:

function msgBoxTest(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var lastColumn = ss.getLastColumn();
var range = ss.getRange("A1:B").getValues();
var filter=[]//new array
  for(var i=0;i<range.length;i++){
   if (range[i][1]=="y"){
    filter.push(range[i][0])
  }}
Browser.msgBox(filter);  
//I want only def & ghi to display here. 
}

或者您可以使用简单的查询公式来完成:

=query(A1:B,"Select A where B='y'")