小编Lon*_*by 的帖子

如何使用 Apps 脚本获取过滤范围的值

我需要获取电子表格的范围值 - 但只有那些通过当前选择的过滤器显示的行。

我尝试过getValues()使用sheet.getFilter().getRange():

function applyOverdueFilter() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var filter1 = SpreadsheetApp.newFilterCriteria();
  filter1.whenDateBefore(SpreadsheetApp.RelativeDate.TODAY);

  sheet.getFilter().setColumnFilterCriteria(4, filter1.build());

  var newData = sheet.getFilter().getRange().getValues(); // this doesn't work
  Logger.log(newData);
}
Run Code Online (Sandbox Code Playgroud)

但是,newData包含电子表格中的所有数据,而不仅仅是应用过滤器后显示的数据。如何只获取过滤后的数据?

注意:该工作表已经有一个过滤器,直到最后两行为止的所有内容都可以完美运行。我不想在 JavaScript 中使用数组过滤的原因是因为我的过滤器涉及日期和相对日期,使用 Apps 脚本的过滤条件更容易过滤这些日期。

google-sheets google-apps-script

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

google-apps-script ×1

google-sheets ×1