-1 filtering google-apps-script google-sheets-api
我有一个关于将过滤器应用于多个值以使用 Google 脚本隐藏它们的问题。我有一个具有多种状态的项目跟踪器,例如“达到目标”、“已完成”、“已取消”、“已延迟”等。我想编写一个脚本来设置“状态”列的筛选器值,以便标记为“已完成”或“的行”已取消”被隐藏。我编写了下面的代码片段来隐藏“已完成”状态,如何向其中添加“已取消”?感谢您的帮助。
//Below code has been written to hide rows with status = Completed.
//I'd like to modify it to hide rows with status = Completed AND rows with status = Canceled.
function SetFilters() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var ssId = spreadsheet.getId();
var sheet = spreadsheet.getSheetByName("Project Tracker");
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var sheetId = sheet.getSheetId();
var filterSettings = {
"range": {
"sheetId": sheetId,
"startRowIndex": 0,
"endRowIndex": lastRow,
"startColumnIndex": 0,
"endColumnIndex": lastColumn
}
};
filterSettings.criteria = {};
var columnIndex = 2;
filterSettings['criteria'][columnIndex] = {
'hiddenValues': ["Completed"]
};
var requests = [{
"setBasicFilter": {
"filter": filterSettings
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
Run Code Online (Sandbox Code Playgroud)
}
无需使用高级表格服务。我们可以使用可用的Filter 类。
function setFilters() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Project Tracker");
var rang = sh.getDataRange();
var filtercriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(["Completed","Cancelled"]).build();//used Cancelled NOT Canceled; Create criteria with two hidden values
var filter = rang.getFilter() || rang.createFilter();// getFilter already available or create a new one
filter.setColumnFilterCriteria(2, filtercriteria);//set the criteria against Col2 (B column)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4116 次 |
| 最近记录: |