[英]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
};
上面的键8
和9
引用枢轴源中的列。 类似于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.