【发布时间】:2020-01-01 23:28:26
【问题描述】:
我在 appscript 中使用某些过滤器时遇到了麻烦。 我可以看到电子表格正在过滤,但在编程上我没有看到任何变化。
你能帮忙吗?
谢谢
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("xxxx");
var values = sheet.getDataRange().getValues();
Logger.log("VALUES "+values.length);
var newCriteria = SpreadsheetApp.newFilterCriteria().whenTextEqualTo('51').build();
var range = sheet.getFilter().setColumnFilterCriteria(22, newCriteria).getRange(); //The 1-indexed position of the column.
values = range.getValues();
Logger.log("VALUES "+values.length);
记录结果:
19-08-28 19:27:33:272 CEST] VALUES 1379
[19-08-28 19:27:39:748 CEST] VALUES 1379
【问题讨论】:
-
您不能仅在过滤范围内获取值()。我可以知道您将如何处理这些值吗?您可以
copyTo过滤范围或使用纯 JavaScript 以编程方式过滤范围(没有电子表格过滤器) -
因为我试图做的 getDataRange().getValues 需要 4 或 5 秒太长,因为行太多。 (1379) 我想通过缩小范围来减少这个时间。
-
使用上面@TheMaster 提到的
copyTo方法查看此答案stackoverflow.com/a/52227279/459863。
标签: google-apps-script google-sheets