2015-06-18 50 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);