表示已嵌入电子表格中的图表。
以下示例展示了如何修改现有图表:
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 | 返回图表的稳定标识符,该标识符在包含
图表;如果图表不在电子表格中,则使用 null 。 |
getContainerInfo() | ContainerInfo | 返回有关图表在工作表中位置的信息。 |
getHiddenDimensionStrategy() | ChartHiddenDimensionStrategy | 返回用于处理隐藏行和列的策略。 |
getMergeStrategy() | ChartMergeStrategy | 返回多个范围时使用的合并策略。 |
getNumHeaders() | Integer | 返回范围内被视为标题的行数或列数。 |
getOptions() | ChartOptions | 返回此图表的选项,例如高度、颜色和轴。 |
getRanges() | Range[] | 返回此图表用作数据源的范围。 |
getTransposeRowsAndColumns() | Boolean | 如果为 true ,则会切换用于填充图表的行和列。 |
modify() | EmbeddedChartBuilder | 返回可用于修改此图表的 EmbeddedChartBuilder 。 |
详细文档
asDataSourceChart()
getAs(contentType)
将此对象中的数据作为转换为指定内容类型的 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
- 稳定的图表标识符。
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
- 用于创建嵌入式图表的构建器