[英]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.