表示嵌入电子表格中的图表。
以下示例展示了如何修改现有图表:
const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange('A2:B8'); let 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) { const sheet = SpreadsheetApp.getActiveSheet(); const chartBuilder = sheet.newChart(); chartBuilder.addRange(range) .setChartType(Charts.ChartType.LINE) .setOption('title', 'My Line Chart!'); sheet.insertChart(chartBuilder.build()); }
方法
方法 | 返回类型 | 简介 |
---|---|---|
as | Data | 如果图表是数据源图表,则将其转换为数据源图表实例;否则,将其转换为 null 。 |
get | Blob | 将此对象内的数据作为转换为指定内容类型的 blob 返回。 |
get | Blob | 以 blob 的形式返回此对象内的数据。 |
get | Integer | 返回图表的稳定标识符,该标识符在包含图表的电子表格中是唯一的;如果图表不在电子表格中,则返回 null 。 |
get | Container | 返回有关图表在工作表中的位置的信息。 |
get | Chart | 返回用于处理隐藏行和列的策略。 |
get | Chart | 返回存在多个范围时使用的合并策略。 |
get | Integer | 返回被视为标题的行数或列数。 |
get | Chart | 返回此图表的选项,例如高度、颜色和轴。 |
get | Range[] | 返回此图表用作数据源的范围。 |
get | Boolean | 如果为 true ,则用于填充图表的行和列会切换。 |
modify() | Embedded | 返回一个 Embedded ,可用于修改此图表。 |
详细文档
as Data Source Chart()
get As(contentType)
将此对象内的数据作为转换为指定内容类型的 blob 返回。此方法会向文件名添加相应的扩展名,例如“myfile.pdf”。不过,它假定文件名最后一个英文句点(如果有)后面的部分是应替换的现有扩展名。因此,“ShoppingList.12.25.2014”会变为“ShoppingList.12.25.pdf”。
如需查看转化每日配额,请参阅 Google 服务的配额。新创建的 Google Workspace 网域可能会暂时受到更严格的配额限制。
参数
名称 | 类型 | 说明 |
---|---|---|
content | String | 要转换到的 MIME 类型。对于大多数 blob,'application/pdf' 是唯一有效的选项。对于 BMP、GIF、JPEG 或 PNG 格式的图片,'image/bmp' 、'image/gif' 、'image/jpeg' 或 'image/png' 中的任何一种也有效。对于 Google 文档,'text/markdown' 也有效。 |
返回
Blob
- 数据(以 blob 的形式)。
get Blob()
get Chart Id()
返回图表的稳定标识符,该标识符在包含图表的电子表格中是唯一的;如果图表不在电子表格中,则返回 null
。
返回
Integer
- 稳定的图表标识符。
get Container Info()
返回有关图表在工作表中的位置的信息。
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(); const 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(), );
返回
Container
- 一个包含图表容器位置的对象
get Hidden Dimension 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(); // Logs the strategy to use for hidden rows and columns which is // Charts.ChartHiddenDimensionStrategy.IGNORE_COLUMNS in this case. Logger.log(chart.getHiddenDimensionStrategy());
返回
Chart
- 用于隐藏行和列的策略。
get Merge Strategy()
返回存在多个范围时使用的合并策略。如果为 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('C1:C10'); const 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());
返回
Chart
- 如果行跨多个范围合并,则为 MERGE_ROWS
;如果列跨多个范围合并,则为 MERGE_COLUMNS
get Num 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(); // Logs the number of rows or columns to use as headers, which is 1 in this // case. Logger.log(chart.getHeaders());
返回
Integer
- 被视为标题的行数或列数。负值表示标头是自动检测到的。
get Options()
get Ranges()
返回此图表用作数据源的范围。
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(); const ranges = chart.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[]
- 一组范围,用作此图表的数据源
get Transpose Rows And Columns()
如果为 true
,则用于填充图表的行和列会切换。默认值为 false
。
const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheets()[0]; const range = sheet.getRange('A1:B5'); const 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()
返回一个 Embedded
,可用于修改此图表。调用 sheet.updateChart(chart)
以保存所有更改。
const sheet = SpreadsheetApp.getActiveSheet(); let chart = sheet.getCharts()[0]; chart = chart.modify() .setOption('width', 800) .setOption('height', 640) .setPosition(5, 5, 0, 0) .build(); sheet.updateChart(chart);
返回
Embedded
- 用于创建嵌入式图表的构建器