【问题标题】:Excel typescript update chart data seriesExcel打字稿更新图表数据系列
【发布时间】:2021-09-17 11:42:03
【问题描述】:

我创建了一个办公脚本,它对 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 脚本中执行此操作的方法是什么?语法是什么?

谢谢,乔里斯

【问题讨论】:

  • 您是否尝试过手动录制脚本?您可以通过“记录操作”任务窗格执行此操作。
  • 是的,我试过了,但是我无法在线更改Excel中的数据系列,我只能更改图表的布局,不能更改数据系列的内容。这与您的评论相结合将是最简单的解决方案。感谢您的评论
  • 你能编辑你原来的问题并添加记录的代码吗?
  • 我无法添加记录的代码,因为我无法在 Excel 中在线更改此图表的数据。当我自己在 Excel Online 中创建图表时,我可以编辑数据并记录,但我无法在 Excel Online 中编辑此图表的数据,选项只是灰显。

标签: excel typescript charts office-scripts


【解决方案1】:

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

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);

【讨论】:

  • 谢谢,这确实有效。通过您的链接,我确实找到了有关此语法的更多信息。唯一不起作用的是 X 轴值的变化。但这可能是因为图表的创建方式。我仍在调查,但我需要找点时间。
猜你喜欢
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 2021-09-09
  • 2016-07-23
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多