gpt4 book ai didi

javascript - 使用谷歌应用程序脚本删除谷歌表格中的所有过滤器

转载 作者:行者123 更新时间:2023-11-30 11:24:17 26 4
gpt4 key购买 nike

我不想恢复多年前发布的旧线程,所以我开始了一个新线程。线程是over here

在该线程中,我找到了答案。我需要以下脚本来删除工作表中的过滤器:

function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetId = ss.getActiveSheet().getSheetId();
var requests = [{
"clearBasicFilter": {
"sheetId": sheetId
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}

问题是,上面的代码只删除了我正在使用的当前事件工作表中的过滤器。我想要的是删除所有工作表中的过滤器。

这是我试过的:

function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetId = ss.getActiveSheet().getSheetId();
var requests = [{
"clearBasicFilter": {
"sheetId": sheetId
}
}];


for(var i = 0; i < ss.length; i++) {

Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
}

在这里,我试图添加一个 for 循环来遍历整个工作簿,但我的 for 循环并不完全正确。有人可以帮我解决这个问题吗?

最佳答案

我了解到您想删除电子表格中所有工作表的过滤器。如果我的理解是正确的,这个修改怎么样?

修改点:

  • 您可以使用 getSheets() 检索电子表格中的所有工作表。
  • 需要将每个工作表 ID 导入到 "sheetId": sheetIdsheetId

修改后的脚本:

function clearFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheetIds = ss.getSheets();
for (var i in sheetIds) {
var requests = [{
"clearBasicFilter": {
"sheetId": sheetIds[i].getSheetId()
}
}];
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
}

注意事项:

  • 此脚本假定已在 Advanced Google Services 和 API 控制台启用 Sheets API。

引用:

如果我误解了你的问题,我很抱歉。

关于javascript - 使用谷歌应用程序脚本删除谷歌表格中的所有过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48616289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com