使用Google App脚本删除一定数量的过滤器视图

时间:2019-08-29 13:16:40

标签: google-apps-script google-sheets google-sheets-api google-apps

我非常想找到一种通过使用Google APP脚本删除给定数量的过滤器视图的方法。目前,我有几张需要删除几十个未命名过滤器视图的工作表。我可以手工完成,但这将花费我几个小时。

经过研究,我发现了一个代码片段,可以删除给定工作表中的所有过滤器视图,但是我想删除一些过滤器视图,而不是全部。

这是我已经找到的代码片段,由TheMaster提供:

function delFilterViews() {
  var ssId = SpreadsheetApp.getActive().getId();
  Sheets.Spreadsheets.batchUpdate(
    {
      requests: Sheets.Spreadsheets.get(ssId, {
        ranges: 'Sheet1', //Sheet in which filterviews are present
        fields: 'sheets/filterViews/filterViewId',
      }).sheets[0].filterViews.map(function(e) {
        return { deleteFilterView: { filterId: e['filterViewId'] } }; //create a new delete filter view request for each filter view present in sheet1
      }),
    },
    ssId
  );
}

我希望脚本起作用的方式是删除名称以“ Filter X”开头的当前工作表的所有过滤器视图X可以是1到100之间的数字

我对正则表达式的cr脚尝试就是这样

(Filter)\s\d*

我目前的编程技能不允许我进一步发展。

有人可以帮我吗?

非常感谢

1 个答案:

答案 0 :(得分:3)

  • 您要删除活动工作表上的所有过滤器视图。
  • 您要删除所有过滤器视图标题为global的过滤器视图。

如果我的理解是正确的,那么下面的示例脚本怎么样?

示例脚本:

Filter

参考文献: