代表已嵌入試算表的圖表。
以下範例說明瞭如何修改現有圖表:
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。 |
getBlob() | Blob | 傳回這個物件中的資料,以 blob 形式傳回。 |
getChartId() | Integer | 針對含有圖表的試算表,傳回圖表的固定 ID;如果圖表不在試算表中,則會傳回 null 。 |
getContainerInfo() | ContainerInfo | 傳回圖表在工作表中的位置資訊。 |
getHiddenDimensionStrategy() | ChartHiddenDimensionStrategy | 傳回用來處理隱藏列和欄的策略。 |
getMergeStrategy() | ChartMergeStrategy | 傳回包含多個範圍的合併策略。 |
getNumHeaders() | Integer | 傳回視為標頭的標題範圍或欄數。 |
getOptions() | ChartOptions | 傳回此圖表的選項,例如高度、顏色和軸。 |
getRanges() | Range[] | 傳回此圖表做為資料來源的範圍。 |
getTransposeRowsAndColumns() | Boolean | 如為 true ,則系統會填入用來填入圖表的列和欄。 |
modify() | EmbeddedChartBuilder | 傳回可用於修改這張圖表的 EmbeddedChartBuilder 。 |
內容詳盡的說明文件
asDataSourceChart()
getAs(contentType)
傳回此物件中的資料,以轉換為指定內容類型的 blob。這個方法會在檔案名稱中加上適當的副檔名,例如「quofile;myfile.pdf"」。但其假設,最後一個月後面的檔案名稱部分 (如果有) 是必須取代的現有副檔名。因此「quoList;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' 中任何一個都是有效的。 |
Return 鍵
Blob
— 將資料以 blob 形式呈現。
getBlob()
getChartId()
針對含有圖表的試算表,傳回圖表的固定 ID;如果圖表不在試算表中,則會傳回 null
。
Return 鍵
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());
Return 鍵
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());
Return 鍵
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());
Return 鍵
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());
Return 鍵
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()); }
Return 鍵
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());
Return 鍵
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);
Return 鍵
EmbeddedChartBuilder
:建立內嵌圖表的建構工具