更改Powerpoint中图表的范围

时间:2015-06-18 09:34:52

标签: c# powerpoint-automation

我正在尝试用C#创建Powerpoint幻灯片,因为我必须使用我的工具创建Reports。将它们导出到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中拖动蓝框一样)?

尼古拉斯

1 个答案:

答案 0 :(得分:2)

注意:如果有人找到更好的解决方案,请回答:)

我发现了一种(丑陋的)方式:
https://msdn.microsoft.com/en-us/library/office/ff746759.aspx

不幸的是,此方法的Powerpoint变体不使用Range对象,而是使用Excel-Selection Strings。因此,如果我使用这个Methode,我将不得不编写一个转换为:

的Parser
worksheet.Range["A1", "B5"]

"'Tabelle1'!$A$1:$B$5"

最后我的解决方案如下:

myChart.SetSourceData("'Tabelle1'!$A$1:$B$5", Excel.XlRowCol.xlColumns);