代表已嵌入試算表的圖表。
這個範例說明如何修改現有圖表:
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 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
:用於建立內嵌圖表的建構工具。