有没有一种使用脚本清除Google工作表的简便方法?

时间:2019-04-24 16:15:06

标签: google-apps-script filter google-sheets clear

我正在尝试寻找一种更好的方法来清除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);

1 个答案:

答案 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);
  }
}