首页 > 解决方案 > Excel打字稿更新图表数据系列

问题描述

我创建了一个办公脚本,对 excel 数据进行一些操作并创建一个表格。该表的数据是图表的输入。该图表已存在于 Excel 文件中。现在,每当将新项目添加到表中时,我都需要手动更新图表的数据范围,但我当然想自动执行此操作。我找不到任何关于此的文档。在 VBA 中,我可以更新图表的数据范围,并尝试将其移植到 office 脚本,但没有运气。

在 VBA 中是这样的:

ActiveChart.FullSeriesCollection(1).XValues = "='summary and graph'!$A$2:$A$42"
ActiveChart.FullSeriesCollection(1).Values = "='summary and graph'!$B$2:$B$42"
ActiveChart.FullSeriesCollection(2).Values = "='summary and graph'!$C$2:$C$42"

在 excel office 脚本中执行此操作的方法是什么?语法是什么?

谢谢,乔里斯

标签: exceltypescriptchartsoffice-scripts

解决方案


这是您在录制时为表格创建图表时获得的代码

function main(workbook: ExcelScript.Workbook) {
    let selectedSheet = workbook.getActiveWorksheet();
    let table1 = workbook.getTable("Table1");
    // Insert chart on sheet selectedSheet with source data from table1
    let chart_5 = selectedSheet.addChart(ExcelScript.ChartType.columnClustered, table1.getRange());
}

您可以使用setData方法更改图表源数据。

您还可以使用getSeries方法获取图表系列集合,并使用setValues方法为每个系列设置值。示例代码可能是 -

let seriesCollection = chart_5.getSeries();
let range = workbook.getWorksheet("summary and graph").getRange("B2:B42");
seriesCollection[0].setValues(range);
range = workbook.getWorksheet("summary and graph").getRange("C2:C42");
seriesCollection[1].setValues(range);

推荐阅读