代表已嵌入試算表的圖表。
以下範例說明如何修改現有圖表:
var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange("A2:B8") var 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, sheet) { var sheet = SpreadsheetApp.getActiveSheet(); var chartBuilder = sheet.newChart(); chartBuilder.addRange(range) .setChartType(Charts.ChartType.LINE) .setOption('title', 'My Line Chart!'); sheet.insertChart(chartBuilder.build()); }
方法
方法 | 傳回類型 | 簡短說明 |
---|---|---|
asDataSourceChart() | DataSourceChart | 如果圖表是資料來源圖表,則會轉換為資料來源圖表執行個體;null
反之。 |
getAs(contentType) | Blob | 以 blob 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。 |
getBlob() | Blob | 以 blob 的形式傳回這個物件中的資料。 |
getChartId() | Integer | 傳回在包含
圖表,如果圖表不在試算表中,則傳回 null 。 |
getContainerInfo() | ContainerInfo | 傳回圖表在工作表中的位置相關資訊。 |
getHiddenDimensionStrategy() | ChartHiddenDimensionStrategy | 傳回處理隱藏列和欄所使用的策略。 |
getMergeStrategy() | ChartMergeStrategy | 如有多個範圍,則傳回使用的合併策略。 |
getNumHeaders() | Integer | 傳回設為標頭的列數或欄數。 |
getOptions() | ChartOptions | 傳回此圖表的選項,例如高度、顏色和軸。 |
getRanges() | Range[] | 傳回此圖表做為資料來源使用的範圍。 |
getTransposeRowsAndColumns() | Boolean | 如果設為 true ,系統會切換用來填入圖表的資料列和資料欄。 |
modify() | EmbeddedChartBuilder | 傳回可用來修改此圖表的 EmbeddedChartBuilder 。 |
內容詳盡的說明文件
asDataSourceChart()
getAs(contentType)
以 blob 的形式傳回這個物件中的資料,做為轉換成指定內容類型的 blob。這個 方法會在檔案名稱中加入適當的副檔名,例如「myfile.pdf」。不過 假設檔案名稱最後一個句點 (如果有) 之後的部分為現有文件 所有應替換的副檔名。因此,「ShoppingList.12.25.2014」變成 「ShoppingList.12.25.pdf」。
如要查看轉換的每日配額,請參閱 Google 的配額 服務。新建立的 Google Workspace 網域可能會暫時受到更嚴格的限制
參數
名稱 | 類型 | 說明 |
---|---|---|
contentType | String | 要轉換的 MIME 類型。大多數 blob 的 'application/pdf' 是
就是唯一有效的選項如為 BMP、GIF、JPEG 或 PNG 格式的圖片,也應採用 'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 格式
有效。如果是 Google 文件,'text/markdown' 也是有效的格式。 |
回攻員
Blob
- 做為 blob 的資料。
getBlob()
getChartId()
傳回在包含
圖表,如果圖表不在試算表中,則傳回 null
。
回攻員
Integer
:穩定的圖表 ID。
getContainerInfo()
傳回圖表在工作表中的位置相關資訊。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange("A1:B8")) .setPosition(5, 5, 0, 0) .build(); var 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());
回攻員
ContainerInfo
:包含圖表容器位置的物件
getHiddenDimensionStrategy()
傳回處理隱藏列和欄所使用的策略。預設值為 IGNORE_ROWS
。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:B5"); var 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());
回攻員
ChartHiddenDimensionStrategy
:用於隱藏列和欄的策略。
getMergeStrategy()
如有多個範圍,則傳回使用的合併策略。如果是 MERGE_ROWS
,資料列會合併;如果是 MERGE_COLUMNS
,資料欄會合併。預設值為 MERGE_COLUMNS
。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:B10"); var range2 = sheet.getRange("C1:C10"); var 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());
回攻員
ChartMergeStrategy
- 如果資料列由多個項目合併,則為 MERGE_ROWS
個
範圍;如果資料欄已合併,則為 MERGE_COLUMNS
並匯總
getNumHeaders()
傳回設為標頭的列數或欄數。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:B5"); var 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
:視為標題的列數或欄數。負值表示標題
會自動偵測。
getOptions()
getRanges()
傳回此圖表做為資料來源使用的範圍。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange("A1:B8")) .setPosition(5, 5, 0, 0) .build(); var ranges = chart.getRanges(); // There's only one range as a data source for this chart, // so this logs "A1:B8" for (var i in ranges) { var range = ranges[i]; Logger.log(range.getA1Notation()); }
回攻員
Range[]
:範圍陣列,做為這張圖表的資料來源
getTransposeRowsAndColumns()
如果設為 true
,系統會切換用來填入圖表的資料列和資料欄。預設為
false
。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:B5"); var 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()
傳回可用來修改此圖表的 EmbeddedChartBuilder
。叫用 sheet.updateChart(chart)
即可儲存任何變更。
var sheet = SpreadsheetApp.getActiveSheet(); var chart = sheet.getCharts()[0]; chart = chart.modify() .setOption('width', 800) .setOption('height', 640) .setPosition(5, 5, 0, 0) .build(); sheet.updateChart(chart);
回攻員
EmbeddedChartBuilder
:建立嵌入式圖表的建構工具