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

标签 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 脚本中过滤掉值的代码。有什么建议么?

最佳答案

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

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'")

关于javascript - 仅为 Google App Script getRange 获取未过滤的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44616109/

相关文章:

javascript - Google App Script 日期函数

python - 将 Google 表格日期序列值转换为人类可读的日期

javascript - 重新定位 jQuery "this"

javascript - 在 Google Apps Script 中的函数内调用函数(invoke)

javascript - 变化 : change value trough Combo box

javascript - 除了 json 可解析的内容之外,Drive Batch API 还返回文本内容

javascript - 在 React JSX 中使用 if 语句

javascript - 使用 Javascript 检索 AppScript 的 URL

google-apps-script - "MMMM yy"- 谷歌电子表格中的日期

security - 授权导入范围后是否可以浏览电子表格?