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



我有一个ppt模板,里面有一个简单的条形图,有(比如说)15行

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

我希望SetSourceData能允许我重写当前的选择,但是

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

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

(对于保留底层数据并不重要,所以如果有截断行来解决问题的方法,我愿意这样做)

而不是使用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];