更改 Powerpoint 中图表的范围
本文关键字:范围 Powerpoint 更改 | 更新日期: 2023-09-27 17:57:06
我正在尝试用C#创建Powerpoint幻灯片,因为我必须用我的工具创建报告。将它们导出到 Powerpoint 的想法是给定的要求,所以我无法改变它。
我创建并填充了一个新图表,如下所示:
var shape = objSlide.Shapes.AddChart(XlChartType.xlColumnStacked, 200, 200, 300, 300);
myChart = shape.Chart;
Powerpoint.ChartData pChartData = myChart.ChartData;
Excel.Workbook eWorkbook = (Excel.Workbook)pChartData.Workbook;
Excel.Worksheet eWorksheet = (Excel.Worksheet)eWorkbook.Worksheets[1];
eWorksheet.Cells[2, 1] = "DATA";
//some more Stuff that is not interesting
现在的问题是,我只需要一个类别,但默认图表会创建 3 个类别。所以我有 3 列,但我只填充其中的 1 列。覆盖它们不起作用。
有没有办法更改要使用的范围(就像我在 PPT/EXCEL 中一样,通过拖动蓝色框)?
注意:如果有人找到更好的解决方案,请回答:)
我找到了一种(丑陋的)方法:
https://msdn.microsoft.com/en-us/library/office/ff746759.aspx
不幸的是,此方法的Powerpoint变体不使用范围对象,而是使用Excel选择字符串。因此,如果我使用此方法,我将不得不编写一个解析器来转换:
worksheet.Range["A1", "B5"]
自
"'Tabelle1'!$A$1:$B$5"
最后,我的解决方案如下所示:
myChart.SetSourceData("'Tabelle1'!$A$1:$B$5", Excel.XlRowCol.xlColumns);