表格圖表的建構工具。詳情請參閱 Gviz 說明文件。
方法
內容詳盡的說明文件
add Range(range)
將範圍新增至這個建構工具修改的圖表。如果範圍已新增至圖表,則不會再新增。
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(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
range | Range | 要新增的範圍。 |
回攻員
Embedded
:這個建構工具用於鏈結。
as Area Chart()
as Bar Chart()
as Column Chart()
as Combo Chart()
as Histogram Chart()
將圖表類型設為 HistogramChart,並傳回 Embedded
。
回攻員
Embedded
:直方圖的建構工具。
as Line Chart()
as Pie Chart()
as Scatter Chart()
as Table Chart()
build()
建構圖表,反映所有變更。
這個方法不會自動在試算表上繪製圖表。必須透過 sheet.insertChart(chart)
插入新圖表,並透過 sheet.updateChart(chart)
更新現有圖表。
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) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart);
回攻員
Embedded
:建立的圖表,必須新增至試算表。
clear Ranges()
從這個建構工具修改的圖表中移除所有範圍。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; // This code updates the chart to use only the new ranges while preserving the // existing formatting of the chart. const chart = sheet.getCharts()[0]; const newChart = chart.modify() .clearRanges() .addRange(sheet.getRange('A1:A5')) .addRange(sheet.getRange('B1:B5')) .build(); sheet.updateChart(newChart);
回攻員
Embedded
:這個建構工具用於鏈結。
enable Paging(enablePaging)
設定是否要啟用資料分頁。
預設行為是停用分頁功能。如果啟用分頁功能,預設頁面大小為 10。
參數
名稱 | 類型 | 說明 |
---|---|---|
enable | Boolean | 如要啟用分頁功能,請使用 true ;否則請使用 false 。 |
回攻員
Embedded
:這個建構工具可用於串連。
enable Paging(pageSize)
啟用分頁功能,並設定每個頁面中的資料列數。
預設頁面大小為 10。
// Creates a table chart builder and enables paging with page size of 5. const builder = Charts.newTableChart(); builder.enablePaging(5);
參數
名稱 | 類型 | 說明 |
---|---|---|
page | Integer | 資料表每頁的資料列數。 |
回攻員
Embedded
:這個建構工具可用於串連。
enable Paging(pageSize, startPage)
啟用分頁功能,設定每頁的列數和要顯示的第一個表格頁面 (頁碼以零為基準)。
預設頁面大小為 10,預設起始頁面為 0。
// Creates a table chart builder and enables paging with page size of 5 and // displays page 2 first. const builder = Charts.newTableChart(); builder.enablePaging(5, 2);
參數
名稱 | 類型 | 說明 |
---|---|---|
page | Integer | 資料表每頁的資料列數。 |
start | Integer | 要顯示的第一個表格頁面 (頁碼以零為基準)。 |
回攻員
Embedded
:這個建構工具可用於串連。
enable Rtl Table(rtlEnabled)
新增對由右至左語言 (例如阿拉伯文或希伯來文) 的基本支援,方法是反轉表格的欄順序,讓第零欄成為最右側的欄,最後一欄則成為最左側的欄。
這不會影響基礎資料中的欄索引,只會影響顯示順序。即使使用這個選項,表格視覺化功能也不支援完整的雙向 (BiDi) 語言顯示。如果您啟用分頁 (使用 page 選項),或因指定的高度和寬度選項小於必要表格大小,導致表格有捲軸,系統會忽略這個選項。預設行為為停用 RTL 支援。
參數
名稱 | 類型 | 說明 |
---|---|---|
rtl | Boolean | 如果應啟用由右至左的支援功能,則為 true ,否則為 false 。 |
回攻員
Embedded
:這個建構工具可用於串連。
enable Sorting(enableSorting)
設定使用者點選欄標題時是否要排序欄。
如果啟用排序功能,使用者點選欄標題時,系統會自動排序資料列。預設行為為啟用排序功能。
參數
名稱 | 類型 | 說明 |
---|---|---|
enable | Boolean | true 啟用排序功能 (按一下欄標題即可排序),false 否則請停用。 |
回攻員
Embedded
:這個建構工具可用於串連。
get Chart Type()
get Container()
傳回圖表 Container
,其中封裝了圖表在工作表上的顯示位置。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const chartBuilder = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange('A1:B8')) .setPosition(5, 5, 0, 0); // This method returns the exact same data as Chart#getContainerInfo() const containerInfo = chartBuilder.getContainer(); // 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 Ranges()
傳回目前為這個圖表提供資料的範圍清單副本。使用 add
和 remove
修改這份清單。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const chartBuilder = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(sheet.getRange('A1:B8')) .setPosition(5, 5, 0, 0); const ranges = chartBuilder.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[]
:做為要建構圖表資料來源的範圍陣列。
remove Range(range)
從這個建構工具修改的圖表中移除指定範圍。如果範圍不在這個圖表中,不會擲回錯誤。
移除的範圍必須與透過 add
新增的範圍相符,否則圖表不會有任何變更。這個方法無法用來從範圍中部分移除值。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const firstRange = sheet.getRange('A1:B5'); const secondRange = sheet.getRange('A6:B8'); const chartBuilder = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(firstRange) // This range renders in a different color .addRange(secondRange) .setPosition(5, 5, 0, 0); // Note that you can use either of these two formats, but the range // MUST match up with a range that was added via addRange(), or it // is not removed, and does not throw an exception chartBuilder.removeRange(firstRange); chartBuilder.removeRange(sheet.getRange('A6:B8')); const chart = chartBuilder.build(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
range | Range | 要移除的範圍。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Chart Type(type)
變更圖表類型。目前僅支援部分嵌入式圖表類型。詳情請參閱 Chart
。
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) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
type | Chart | 要將這個圖表變更為的類型。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set First Row Number(number)
設定資料表第一列的列號。
第一個資料列的預設列號為 1。
// Creates a table chart builder and sets the first row to be 2. const builder = Charts.newTableChart(); builder.setFirstRowNumber(2);
參數
名稱 | 類型 | 說明 |
---|---|---|
number | Integer | 資料表第一列的列號。 |
回攻員
Embedded
:這個建構工具可用於串連。
set Hidden Dimension Strategy(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(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
strategy | Chart | 隱藏資料列和資料欄的策略。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Initial Sorting Ascending(column)
設定表格應根據哪個欄的索引進行初始排序 (遞增)。
系統會以遞增順序排序資料欄,並以小箭頭標示。
// Creates a table chart builder and sorts it by the second column (ascending). const builder = Charts.newTableChart(); builder.setInitialSortingAscending(2);
參數
名稱 | 類型 | 說明 |
---|---|---|
column | Integer | 表格應根據哪個資料欄進行初始排序。 |
回攻員
Embedded
:這個建構工具可用於串連。
set Initial Sorting Descending(column)
設定表格的初始排序依據欄索引 (遞減)。
該欄會以遞減順序排序,並標示一個小箭頭。
// Creates a table chart builder and sorts it by the second column (descending). const builder = Charts.newTableChart(); builder.setInitialSortingDescending(2);
參數
名稱 | 類型 | 說明 |
---|---|---|
column | Integer | 表格應根據哪個資料欄進行初始排序。 |
回攻員
Embedded
:這個建構工具可用於串連。
set Merge Strategy(mergeStrategy)
設定存在多個範圍時要使用的合併策略。如果是 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('C:C10'); const chart = sheet.newChart() .setChartType(Charts.ChartType.BAR) .addRange(range) .addRange(range2) .setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
merge | Chart | 要使用的合併策略。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Num Headers(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(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
headers | Integer | 要視為標題的列數或欄數。負值會導致系統自動偵測標題。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Option(option, value)
設定這張圖表的進階選項。如要查看可用選項清單,請參閱圖表設定選項。
這個方法不會驗證您指定的選項是否適用於這個圖表類型,也不會驗證值是否為正確的格式/結構。
這個範例說明如何變更標題及設定圖例。
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sheet = spreadsheet.getSheets()[0]; const chart = sheet.newChart() .setOption('title', 'Earnings projections') .setOption('legend', { position: 'top', textStyle: { color: 'blue', fontSize: 16 }, }).build();
參數
名稱 | 類型 | 說明 |
---|---|---|
option | String | 選項名稱。 |
value | Object | 選項的值。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Position(anchorRowPos, anchorColPos, offsetX, offsetY)
設定圖表在工作表中的位置。anchor
和 anchor
是以 1 為索引。
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) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
anchor | Integer | 圖表的頂端會固定在這個資料列中。 |
anchor | Integer | 圖表的左側會錨定在這個資料欄中。 |
offsetX | Integer | 圖表右上角會偏移這麼多像素。 |
offsetY | Integer | 圖表左下角會偏移這麼多像素。 |
回攻員
Embedded
:這個建構工具用於鏈結。
set Transpose Rows And Columns(transpose)
設定是否要轉置圖表的列和欄。如果設為 true
,系統會切換資料列和資料欄。預設值為 false
。
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) .setTransposeRowsAndColumns(true) .setPosition(5, 5, 0, 0) .build(); sheet.insertChart(chart);
參數
名稱 | 類型 | 說明 |
---|---|---|
transpose | Boolean | 如果使用 true ,則用於建構圖表的列和欄會轉置。 |
回攻員
Embedded
:這個建構工具用於鏈結。
show Row Number Column(showRowNumber)
設定是否要在表格的第一欄顯示列號。
系統預設不會顯示列號。
參數
名稱 | 類型 | 說明 |
---|---|---|
show | Boolean | true :如果表格的第一欄應顯示列號,請使用這個值; false :否則請使用這個值。 |
回攻員
Embedded
:這個建構工具可用於串連。
use Alternating Row Style(alternate)
設定是否要為表格圖表的奇數和偶數列指派交替顏色樣式。
預設行為是讓資料列採用交替顏色樣式。
參數
名稱 | 類型 | 說明 |
---|---|---|
alternate | Boolean | 如果顏色樣式應交替,則為 true ,否則為 false 。 |
回攻員
Embedded
:這個建構工具可用於串連。