简体   繁体   English

有没有更简单的方法来使用脚本清除 Google 表格?

[英]Is there an easier way to clear a Google sheet using script?

I am trying to find a better way to clear filters on 12 different sheets of Google versus what I have put in. This clearing function takes the longest amount of time of my script to run.我正在尝试找到一种更好的方法来清除 12 个不同的 Google 工作表上的过滤器,而不是我输入的过滤器。此清除功能需要我的脚本运行的最长时间。

An example of what is complete and works is below.下面是完整和有效的示例。 Each sheet has 46 columns that I need to clear, and there are 12 sheets.每张纸有 46 列我需要清除,共有 12 张纸。 This seems a little excessive but this is the only way that I've found that will do this, and it is a necessary step otherwise the other script won't run.这似乎有点过分,但这是我发现的唯一可以做到这一点的方法,而且这是必要的步骤,否则其他脚本将无法运行。 Any way to improve on this?有什么方法可以改进吗? It's the same row on every sheet, exact same info, just different things could be filtered.每张纸上的同一行,完全相同的信息,只是可以过滤不同的东西。

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);

Well your code is fine, it just need some optimizations here goes some:那么你的代码很好,它只需要一些优化就可以了:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM