【发布时间】:2020-10-15 13:37:11
【问题描述】:
我有一个电子表格,其中设置了各种过滤视图。通常这很好用,但偶尔会添加新行,我必须手动更新每个过滤器视图中的范围。我尝试在线搜索解决方案,并想出了以下可能会更新范围的代码:
function UpdateFilterView() {
var dataSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
//for each (var dataSheet in sheets){
var lastRow = dataSheet.getLastRow();
var lastColumn = dataSheet.getLastColumn();
var sheetId = dataSheet.getSheetId();
var filterSettings = {
"filterViewId": "319575141",
"range":{
"sheetId": sheetId,
"startRowIndex": 1,
"endRowIndex": lastRow,
"startColumnIndex": 1,
"endColumnIndex": lastColumn
}
//}
};
var requests = [{
"fields": "*",
"updateFilterView":{
"filter": filterSettings
}
}];
Sheets.Spreadsheets.batchUpdate({"requests":requests},sheetId);
}
我从找到的帖子 (here) 中获取了大部分代码,但由于某种原因,它不会更新指定的过滤器。我错过了什么吗?此外,当我运行代码“ReferenceError:Sheets 未定义(第 32 行,文件“代码”)”时出现以下错误,其中引用了“Sheets.Spreadsheets .....”行。
关于这是否可能的任何想法?
【问题讨论】:
-
从您的错误消息中,我认为 Sheets API 可能未启用。那么您能否确认一下 Google 高级服务中是否已经启用了 Sheets API? Ref如果没有开启,请开启后再测试。
-
启用 Sheets API 后您的问题是否得到解决?
-
我真傻,我想我肯定需要打开 Sheets API。所以我运行脚本并收到以下错误:GoogleJsonResponseException:API 调用 sheet.spreadsheets.batchUpdate 失败并出现错误:无效的 JSON 有效负载有什么想法吗? @田池
-
@Cooper,我收到以下错误消息:GoogleJsonResponseException: API call to sheet.spreadsheets.batchUpdate failed with error: Invalid JSON payload 有什么想法吗?
-
更具体地说:GoogleJsonResponseException:对 sheet.spreadsheets.batchUpdate 的 API 调用失败并出现错误:收到无效的 JSON 有效负载。 “请求 [0]”处的未知名称“字段”:找不到字段。 (第 31 行,文件“代码”)
标签: google-apps-script google-sheets dynamic filter google-sheets-api