在 Powerpoint 中更改图表的源数据范围

changing range of source data for a chart in Powerpoint

我有一个 powerpoint 模板,其中包含一个简单的条形图(比如)15 行

根据 c# 应用程序中发生的数据查找结果,使用 NetOffice Interop 我可能需要减少显示的行数

我曾希望 SetSourceData 允许我覆盖当前选择,但是

Shape sh = slide.Shapes['mychart'];
NetOffice.PowerPointApi.Chart cx = sh.Chart;
cx.SetSourceData("='Sheet1'!$A:$B");

似乎被忽略了,源范围仍然是完整的底层数据

(保留基础数据并不重要,因此如果有办法通过截断行来解决问题,我们很乐意这样做)

而不是使用 setSourceData(除非您正在创建新图表,否则它似乎被忽略了我能够使用以下内容来更新用于显示数据的范围:

Range tRange = ws.Cells.get_Range("A1","B5");
ListObject tbl1 = ws.ListObjects[1];  // Table1
tbl1.Resize(tRange);

其中 ws 是图表中图表数据的工作簿中的工作表

Shape sh = slide.Shapes['mychart'];
Chart cc = sh.Chart;
ChartData cd = cc.ChartData;
Workbook wb = (Workbook)cd.Workbook;
Worksheet ws = (Worksheet)wb.Worksheets[1];