我如何构建一个包含特定文本的过滤器

How can I build a filter that contains a certain text by gas

我有一个运行良好的脚本

function setFilter() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var filterSettings = {};
  filterSettings.range = {sheetId: ss.getSheetByName("mySheet").getSheetId()};
  filterSettings.criteria = {};
  filterSettings['criteria'][4] = {
    'hiddenValues': ["FALSE"]
  };
  var request = {
    "setBasicFilter": {
      "filter": filterSettings
    }
  };
  Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
}

在 E 列中

={"test";arrayformula(if(B2:B="",,not(iserror(find("mike",B2:B)))))}

问题:

您必须在字段 condition 下定义 TEXT_CONTAINS

解决方案:

替换为:

filterSettings['criteria'][4] = {
  'hiddenValues': ["FALSE"]
};

有了这个:

filterSettings['criteria'][1] = {
  "condition": {
    "type": "TEXT_CONTAINS",
    "values": [
      {
        "userEnteredValue": "mike"
      }
    ]
  }
};

备注:

  • criteria 已弃用,请考虑改用 filterSpecs
  • 我之前没有注意到你的第二个问题。查看 Managing filter views 以获取有关创建过滤器视图的信息。

参考: