繁体   English   中英

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

[英]Google sheet script to create filter of pivot table

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

var sheetName = "Sheet1";
var pivotTableParams = {};


pivotTableParams.source = {
  sheetId: ss.getSheetByName(sheetName).getSheetId()
};

pivotTableParams.rows = [{
  sourceColumnOffset: 8,
  "showTotals": true,
  sortOrder: "ASCENDING"
}];

pivotTableParams.values = [{
  summarizeFunction: "SUM",
  sourceColumnOffset: 10 
}];

var sheet = ss.getSheetByName('Sheet2');
ss.deleteSheet(sheet);  

var pivotTableSheet = ss.insertSheet('Sheet2');
var pivotTableSheetId = pivotTableSheet.getSheetId();

var request = {
  "updateCells": {
    "rows": {
      "values": [{
        "pivotTable": pivotTableParams
      }]
    },
    "start": {
      "sheetId": pivotTableSheetId
    },
    "fields": "pivotTable"
  }
};

该文档可以使用一个示例。

在您的代码上下文中:

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

上面的键89引用枢轴源中的列。 类似于sourceColumnOffset引用它们的方式。

criteria字段记录在此处: 数据透视表 | 表格 API | 谷歌开发者

PivotFilterCriteria类型记录在此处: PivotFilterCriteria | 表格 API | 谷歌开发者

从我的调查来看,我相信visibleValues是您可以通过的唯一键,因此据我所知不能通过排除进行过滤。

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

  // 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/电子表格/数据透视表#PivotFilterCriteria

如果有人尝试在 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]

暂无
暂无

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

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