代表已嵌入試算表的圖表。
以下範例說明如何修改現有圖表:
const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange('A2:B8'); let chart = sheet.getCharts()[0]; chart = chart.modify() .addRange(range) .setOption('title', 'Updated!') .setOption('animation.duration', 500) .setPosition(2, 2, 0, 0) .build(); sheet.updateChart(chart);
以下範例說明如何建立新圖表:
function newChart(range) { const sheet = SpreadsheetApp.getActiveSheet(); const chartBuilder = sheet.newChart(); chartBuilder.addRange(range) .setChartType(Charts.ChartType.LINE) .setOption('title', 'My Line Chart!'); sheet.insertChart(chartBuilder.build()); }
方法
方法 | 傳回類型 | 簡短說明 |
---|---|---|
as | Data | 如果圖表是資料來源圖表,則會轉換為資料來源圖表例項,否則會轉換為 null 。 |
get | Blob | 將此物件內的資料傳回為轉換為指定內容類型的 Blob。 |
get | Blob | 將此物件內的資料以 blob 格式傳回。 |
get | Integer | 傳回圖表的穩定 ID,該 ID 在包含圖表的試算表中是唯一的,如果圖表不在試算表中,則傳回 null 。 |
get | Container | 傳回圖表在試算表中的位置資訊。 |
get | Chart | 傳回用於處理隱藏資料列和資料欄的策略。 |
get | Chart | 傳回多個範圍存在時所使用的合併策略。 |
get | Integer | 傳回範圍中視為標頭的列數或列數。 |
get | Chart | 傳回這張圖表的選項,例如高度、顏色和軸。 |
get | Range[] | 傳回此圖表用來做為資料來源的範圍。 |
get | Boolean | 如果為 true ,則會切換用於填入圖表的資料列和資料欄。 |
modify() | Embedded | 會傳回可用於修改此圖表的 Embedded 。 |
內容詳盡的說明文件
as Data Source Chart()
get As(contentType)
將此物件內的資料傳回為轉換為指定內容類型的 Blob。這個方法會在檔案名稱中加入適當的副檔名,例如「myfile.pdf」。不過,這會假設檔案名稱中最後一個句點 (如有) 後面的部分是應取代的現有副檔名。因此,「ShoppingList.12.25.2014」會變成「ShoppingList.12.25.pdf」。
如要查看轉換的每日配額,請參閱「Google 服務的配額」。新建立的 Google Workspace 網域可能會暫時受到更嚴格的配額限制。
參數
名稱 | 類型 | 說明 |
---|---|---|
content | String | 要轉換的 MIME 類型。對於大多數 Blob 而言,'application/pdf' 是唯一有效的選項。如果是 BMP、GIF、JPEG 或 PNG 格式的圖片,'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 皆可用。如果是 Google 文件,'text/markdown' 也是有效的。 |
回攻員
Blob
:資料為 Blob。
get Blob()
get Chart Id()
傳回圖表的穩定 ID,該 ID 在包含圖表的試算表中是唯一的,如果圖表不在試算表中,則傳回 null
。
回攻員
Integer
:穩定的圖表 ID。
get Container Info()
傳回圖表在試算表中的位置資訊。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange('A1:B8')) .setPosition(5, 5, 0, 0) .build(); const containerInfo = chart.getContainerInfo(); // Logs the values we used in setPosition() Logger.log( 'Anchor Column: %s\r\nAnchor Row %s\r\nOffset X %s\r\nOffset Y %s', containerInfo.getAnchorColumn(), containerInfo.getAnchorRow(), containerInfo.getOffsetX(), containerInfo.getOffsetY(), );
回攻員
Container
:包含圖表容器位置的物件
get Hidden Dimension Strategy()
傳回用於處理隱藏資料列和資料欄的策略。預設值為 IGNORE_ROWS
。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const range = sheet.getRange('A1:B5'); const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(range) .setHiddenDimensionStrategy( Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS, ) .setPosition(5, 5, 0, 0) .build(); // Logs the strategy to use for hidden rows and columns which is // Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS in this case. Logger.log(chart.getHiddenDimensionStrategy());
回攻員
Chart
:隱藏的資料列和資料欄要使用的策略。
get Merge Strategy()
傳回多個範圍存在時所用的合併策略。如果是 MERGE_ROWS
,則會合併列;如果是 MERGE_COLUMNS
,則會合併欄。預設值為 MERGE_COLUMNS
。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const range = sheet.getRange('A1:B10'); const range2 = sheet.getRange('C1:C10'); const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(range) .addRange(range2) .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS) .setPosition(5, 5, 0, 0) .build(); // Logs whether rows of multiple ranges are merged, which is MERGE_ROWS in this // case. Logger.log(chart.getMergeStrategy());
回攻員
Chart
:如果資料列跨多個區間合併,則為 MERGE_ROWS
;如果資料欄跨多個區間合併,則為 MERGE_COLUMNS
get Num Headers()
傳回範圍中視為標題的列或資料列數。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const range = sheet.getRange('A1:B5'); const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(range) .setNumHeaders(1) .setPosition(5, 5, 0, 0) .build(); // Logs the number of rows or columns to use as headers, which is 1 in this // case. Logger.log(chart.getHeaders());
回攻員
Integer
:視為標頭的列數或欄數。負值表示系統會自動偵測標頭。
get Options()
get Ranges()
傳回此圖表用來做為資料來源的範圍。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange('A1:B8')) .setPosition(5, 5, 0, 0) .build(); const ranges = chart.getRanges(); // There's only one range as a data source for this chart, // so this logs "A1:B8" for (const i in ranges) { const range = ranges[i]; Logger.log(range.getA1Notation()); }
回攻員
Range[]
:做為這張圖表資料來源的範圍陣列
get Transpose Rows And Columns()
如果為 true
,則會切換用於填入圖表的資料列和資料欄。預設值為 false
。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const range = sheet.getRange('A1:B5'); const chart = sheet.newChart() .addRange(range) .setChartType(Charts.ChartType.BAR) .setTransposeRowsAndColumns(true) .setPosition(5, 5, 0, 0) .build(); // Logs whether rows and columns should be transposed, which is true in this // case. Logger.log(chart.getTransposeRowsAndColumns());
回攻員
Boolean
:如果用於建立圖表的資料列和資料欄已互換,則為 true
。
modify()
會傳回可用於修改此圖表的 Embedded
。請叫用 sheet.updateChart(chart)
儲存所有變更。
const sheet = SpreadsheetApp.getActiveSheet(); let chart = sheet.getCharts()[0]; chart = chart.modify() .setOption('width', 800) .setOption('height', 640) .setPosition(5, 5, 0, 0) .build(); sheet.updateChart(chart);
回攻員
Embedded
:用於建立嵌入式圖表的建構工具