超小ネタ。
Google スプレッドシートでピボットテーブルを作ったとき、行または列の項目ごとに「総計を表示」するかどうか選択できる。
この値を GAS で取得したい。
なんでこんなこと思ったかというと、総計を表示するかどうかで行・列数が変わるため、処理に分岐が必要だったから。
方法
PivotGroup
クラスに totalsAreShown()
メソッドがある のでそれを使う。
function getTotalsAreShown() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('foo'); const pivotTables = sheet.getPivotTables(); const pivotTable = pivotTables[0]; // 列の場合。行の場合は getRowGroups() const pivotGroups = pivotTable.getColumnGroups(); pivotGroups.forEach(pivotGroup => { console.log(pivotGroup.totalsAreShown()); }) }
Sheet
、PivotTable
、PivotGroup
という3つのクラスが関係しており、それぞれの関係性は下の図のとおり。
なお、 showTotals(boolean)
というメソッドで ON/OFF の設定もできる。