Google表脚本用于创建数据透视表的过滤器

时间:2018-01-03 06:49:20

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

我有以下脚本来创建简单的数据透视表。这是一个工作脚本。但是,我很难找到样本代码来创建过滤器。如果有人可以向我展示示例脚本来创建数据透视表过滤器,我将不胜感激。

loadSongs()

3 个答案:

答案 0 :(得分:0)

文档可以使用示例。

在您的代码上下文中:

pivotTableParams.criteria = {
  8: {visibleValues: ["asdf", "fdsa"]},
  9: {visibleValues: ["sdaf", "fads"]},
  //and so on
};

上面的键89引用了数据透视源中的列。类似于sourceColumnOffset引用它们的方式。

criteria字段记录在这里:Pivot Tables | Sheets API | Google Developers

此处记录了PivotFilterCriteria类型:PivotFilterCriteria | Sheets API | Google Developers

根据我的调查,我相信visibleValues是唯一可以通过的密钥,因此据我所知不能通过排除进行筛选。

答案 1 :(得分:0)

如果有人遇到这个线程试图找到一个工作脚本的例子,其中有更详细的参数被传递给过滤器,这里有一个过滤器的工作示例,它删除所有空白值并默认显示所有其他值:

  // Filter blank cells  
  var condition = new Boolean();
  condition.type = "NOT_BLANK";
  pivotTableParams.criteria = { 0: {"condition": condition, "visibleByDefault": true}};

在这个例子中,“0”是数据透视表上的列索引。

以下是来自 Google Sheets API 的文档,不幸的是,这些文档缺少示例,因此可能需要进行大量的反复试验才能使工作正常进行: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/pivot-tables#PivotFilterCriteria

答案 2 :(得分:0)

如果有人尝试在 Apps 脚本中调用 Sheets API,您可以使用以下代码向数据透视表对象添加过滤器

  var filter1 = Sheets.newPivotFilterCriteria()
  filter1.visibleValues = ['Sí']
  var spec1 = Sheets.newPivotFilterSpec()
  spec1.filterCriteria = filter1
  spec1.columnOffsetIndex = 0
  var filter2 = Sheets.newPivotFilterCriteria()
  filter2.visibleValues = dates
  var spec2 = Sheets.newPivotFilterSpec()
  spec2.filterCriteria = filter2
  spec2.columnOffsetIndex = 10
  var filter3 = Sheets.newPivotFilterCriteria()
  filter3.visibleValues = ['Negocio']
  var spec3 = Sheets.newPivotFilterSpec()
  spec3.filterCriteria = filter3
  spec3.columnOffsetIndex = 23
  pivotTable.filterSpecs = [spec1,spec2,spec3]