首页 > 解决方案 > 如何在谷歌脚本中使用列值过滤器?

问题描述

我正在使用以下脚本从另一个谷歌工作表导入数据,如何在其中添加列值过滤器。

function muscriptedimortrange2() {
  var values = SpreadsheetApp.openById("1-fj1z1gxdow5Et031Bty9CXDoCFwsrLdYcFkiJ-6BWQ")
    .getSheetByName("URN")
    .getRange("A1:J")
    .getValues();
  var syst = new Date();
  SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("REV")
    .getRange(1, 1, values.length, values[0].length)
    .setValues(values);
  SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("REV")
    .getRange(1, 30, 1, 1)
    .setValue(syst);
}

标签: google-apps-scriptgoogle-sheets

解决方案


您可以使用过滤功能

function muscriptedimortrange2() {
  var values = SpreadsheetApp.openById("1-fj1z1gxdow5Et031Bty9CXDoCFwsrLdYcFkiJ-6BWQ")
    .getSheetByName("URN")
    .getRange("A1:J")
    .getValues();
  
  // Here is the filter
  values = values.filter(row => row[4] === "Delhi")

  var syst = new Date();
  SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("REV")
    .getRange(1, 1, values.length, values[0].length)
    .setValues(values);
  SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName("REV")
    .getRange(1, 30, 1, 1)
    .setValue(syst);
}

要使用过滤器功能,您需要提供一个评估某些条件的回调。在您的情况下,它是row[4] === "Delhi". row[4]对应于 E 列。如果回调的结果是,true则包含该行,否则将其丢弃。


推荐阅读