【发布时间】:2018-07-20 18:35:00
【问题描述】:
我有一个关于将过滤器应用于多个值以使用 Google 脚本隐藏它们的问题。我有一个项目跟踪器,它具有多种状态,例如目标、已完成、已取消、已延迟等。我想编写一个脚本来设置状态列的过滤器值,以便标记为“已完成”或“已取消”被隐藏。我已经编写了下面的代码 sn-p 用于隐藏已完成状态,如何添加已取消?感谢您的帮助。
//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);
}
【问题讨论】:
-
您查看过
FilterCriteria的文档吗?快速阅读它可以很好地了解要尝试什么,所以......你尝试了什么? -
@tehhowch。作为脚本的新手,如何修改现有的隐藏值字符串以包含“已取消”状态?我确实检查了过滤条件,但无法弄清楚。我尝试使用 "hiddenValues": ["Completed", "Canceled"] 但这似乎不起作用。另外,在否决问题之前先问一下尝试过的问题不是更好吗?
-
您总是可以从另一端处理这个“我该怎么做”——在 UI 中设置过滤器,然后使用 API 请求现有的过滤器数据。然后,您可以轻松地将输入语法与应有的语法进行比较。
-
请记住,我对 Google Apps 脚本非常陌生。我在业务项目管理团队工作,并创建了这个跟踪器来帮助我们的产品经理报告他们的状态。我很感激直接回答我的问题,否则我会等待其他人回答这个问题。我不知道如何做你推荐的任何事情。
-
使用 Google APIs Explorer。例如,您使用
spreadsheets.get查询电子表格元数据(例如basicFilter),其中包含此 API Explorer 页面。它有一个交互式部分响应编辑器、悬停文本等。hiddenValues: [ "A", "B", "C", ... "stuff" ]是对多个隐藏值的FilterCriteria的正确初始化。 PS:“它不起作用”不是有效的问题描述。
标签: google-apps-script filtering google-sheets-api