我正在尝试寻找一种更好的方法来清除Google 12种不同页面上的过滤器,而不是我所输入的内容。这种清除功能需要最长的脚本运行时间。
下面是一个完整且有效的示例。每张纸有46列我需要清除,并且有12张纸。这似乎有点过分,但这是我发现这样做的唯一方法,这是必要的步骤,否则其他脚本将无法运行。有什么办法可以改善吗?每张纸上都是同一行,信息完全相同,只是可以过滤出不同的内容。
var IT = SpreadsheetApp.openById('1ktIHQMhr8RcoHJishstT4xDtO2PnU26MzDAW0Fe1Cks').getSheetByName('IT');
IT.getFilter().removeColumnFilterCriteria(1);
IT.getFilter().removeColumnFilterCriteria(2);
IT.getFilter().removeColumnFilterCriteria(3);
IT.getFilter().removeColumnFilterCriteria(4);
IT.getFilter().removeColumnFilterCriteria(5);
IT.getFilter().removeColumnFilterCriteria(6);
IT.getFilter().removeColumnFilterCriteria(7);
IT.getFilter().removeColumnFilterCriteria(8);
IT.getFilter().removeColumnFilterCriteria(9);
IT.getFilter().removeColumnFilterCriteria(10);
IT.getFilter().removeColumnFilterCriteria(11);
IT.getFilter().removeColumnFilterCriteria(12);
IT.getFilter().removeColumnFilterCriteria(13);
IT.getFilter().removeColumnFilterCriteria(14);
IT.getFilter().removeColumnFilterCriteria(15);
IT.getFilter().removeColumnFilterCriteria(16);
答案 0 :(得分:0)
您的代码很好,它只需要一些优化就可以了:
function clearFilters(){
var ss = SpreadsheetApp.getActiveSheet(); // or SpreadsheetApp.openById('1ktIHQMhr8RcoHJishstT4xDtO2PnU26MzDAW0Fe1Cks').getSheetByName('IT')
var headers = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues()[0];
var filter = ss.getFilter();
for(var i=1,len=headers.length;i<=len;i++){
filter.removeColumnFilterCriteria(i);
}
}