簡體   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