首页 > 解决方案 > 使用工作表列中的值添加多个过滤视图

问题描述

我有这个将过滤视图添加到工作表的应用程序脚本功能。我想使用一个函数来为同一个工作表创建多个过滤视图,使用 columnIndex 3 中的值来定义标题、filterViewId 和过滤条件。

这是我拥有的 Apps 脚本功能:

function AddFilterView() {  //Adds a filterview
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var dataSheet = ss.getSheetByName('sheet1');  //Sheet in which filterview will be added
  var lastRow = dataSheet.getLastRow();
  var lastColumn = dataSheet.getLastColumn();
  var sheetId = dataSheet.getSheetId();
  var filterSettings = {
    "filterViewId": "2",  // write a integer+32 number for the filterview Id
    "title": "2", // write a title for the filterview
    "range":{
      "sheetId": sheetId,
      "startRowIndex": 0,
      "endRowIndex": lastRow,
      "startColumnIndex": 0,
      "endColumnIndex": lastColumn
    }
  };
  var condition_value = {
    "type": "TEXT_EQ",
    "values": [{"userEnteredValue": "2"}]
  };

 filterSettings.criteria = {};

  var columnIndex = 3; // column that defines criteria [A = 0]
  filterSettings['criteria'][columnIndex] = {
    'condition' : condition_value
  };
  
  var requests = [{
    "addFilterView":{
      "filter": filterSettings,
    }
  }];
  Sheets.Spreadsheets.batchUpdate({"requests":requests}, ss.getId());  
}

这是我正在使用的工作表的图像捕获:

我正在使用的工作表的图像捕获

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


推荐阅读