Google apps script 谷歌应用程序脚本-为谷歌工作表创建和保存过滤器

Google apps script 谷歌应用程序脚本-为谷歌工作表创建和保存过滤器,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我觉得自己有点傻,但我不能解决这个问题 我的工作是每月从提供的XML文件中生成一个新的主分析表,该文件与我们(多个)表的各个列相结合。到目前为止没有问题。我已经按照我想要的方式完成了所有这些工作。:-) 我的问题是,我们还有大约6-8个过滤器保存在一个特定的表中,允许我们的审核员专注于特定的领域(正如您所理解的,我们的审核员希望这些过滤器完全按照他们指定的方式工作) 我尝试过使用createFilter(),但似乎没有任何方法可以将多个筛选器保存到该工作表中(可能我遗漏了一些内容)。没有快乐!:

我觉得自己有点傻,但我不能解决这个问题

我的工作是每月从提供的XML文件中生成一个新的主分析表,该文件与我们(多个)表的各个列相结合。到目前为止没有问题。我已经按照我想要的方式完成了所有这些工作。:-)

我的问题是,我们还有大约6-8个过滤器保存在一个特定的表中,允许我们的审核员专注于特定的领域(正如您所理解的,我们的审核员希望这些过滤器完全按照他们指定的方式工作)

我尝试过使用createFilter(),但似乎没有任何方法可以将多个筛选器保存到该工作表中(可能我遗漏了一些内容)。没有快乐!:-(

我尝试录制一个宏,然后运行它来创建过滤器。这里也没有乐趣:-(

我是否必须告诉这些讨厌的审计员每个月都要创建自己的过滤器(他们确实知道如何创建,但它就在他们的下面),或者有没有一种方法可以让我编写它们的脚本,让它们从我的背上消失

不幸的是(尽管我很想),我不能分享我们的工作表或脚本,因为我们有重要的IP嵌入其中

如果可能的话,我真的很感激你能给我一些指导,告诉我你是如何做到这一点的

问候


Ian

如果你真的在谈论“创建新的过滤器视图”,我建议制作一个模板表。因此,与其每月创建一个新的表,不如制作一个模板电子表格,并添加审计员需要的所有过滤器视图。然后复制该电子表格,并将新数据粘贴到其中。

使用应用程序创建过滤器的正确方法脚本和
createFilter()
是一个:

function setFilters() {
  var ss = SpreadsheetApp.getActiveSheet();
  var rangeFilter = ss.getRange("INPUT_YOUR_RANGE_HERE");
  var filter = rangeFilter1.createFilter();
  var filterCriteria = SpreadsheetApp.newFilterCriteria();
  filterCriteria.ADD_YOUR_CRITERIA_HERE;
  filter.setColumnFilterCriteria(columnPosition, filterCriteria.build());
}
如您所见,必须使用
build()
为您创建的筛选器生成条件

您还可以使用Sheets advanced services并使用Sheets API创建过滤器,类似于以下内容:

  var filterSettings = {
  //YOUR FILTER SETTINGS
  };
  var request = [{
    "setBasicFilter": {
      "filter": filterSettings
    }
  }];
至于调用Sheets服务并应用上述过滤器,您可以使用以下方法:

Sheets.Spreadsheets.batchUpdate({'requests': request}, SPREADSHEET_ID);
参考文献
  • )

  • )


你说的是“创建新的过滤器视图”,这样每个人都可以创建自己的过滤器,还是适用于每个人的实际过滤器?为什么这么复杂?创建一个自定义菜单,所有菜单都像你的过滤器一样,不是更容易吗?例如,谢谢。在我就这个问题睡了一觉后,我想出了同样的解决方案,效果很好l、 (英雄所见略同!!)为了整合脚本,我做了一些调整,但现在进展顺利。唯一令人沮丧的是脚本的时间限制。我理解谷歌为什么这么做,但这对我来说是一种简化。我不得不把它分成大约10个部分。再次感谢。非常好。很好的建议。我也会使用这个选项。谢谢。