2015-06-18 47 views
2

我正在试验用C#创建Powerpoint幻灯片,因为我必须从我的工具中创建报表。将它们导出到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 

现在的问题是,我只需要一个Categorie,但默认图表创建3.

所以我有3列,但我只填写其中的一个。 覆盖它们不起作用。

有没有办法改变使用的范围(就像我在PPT/EXCEL中做的那样以及通过拖动蓝色框)?

萨科

+0

是的,你可以遍历shape.chart属性的范围 - 但它很丑。 –

+0

这是真的。但实际上,迭代不能解决问题。我想改变它。我只能找到一个范围内的Methode。 – Xlaech

回答

2

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

我发现一个(丑陋的)的方式来做到这一点:
https://msdn.microsoft.com/en-us/library/office/ff746759.aspx

Unfortunally,PowerPoint演示变化此方法不使用Range对象,而是使用Excel选择字符串。所以,如果我会用这个了Methode我会写,其中转换的解析器:

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

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

在结束我的解决办法是这样的:

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