表示已嵌入电子表格的图表。
以下示例展示了如何修改现有图表:
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' 中的任意一种都有效。 |
返回
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
- 用于创建嵌入式图表的构建器