2015-06-18 5 views
2

Я экспериментирую с созданием Powerpoint Slides из 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, перетаскивая синюю коробку)?

Николя

+0

Да, вы может перебирать диапазоны свойства shape.chart - но это уродливо. –

+0

Thats true. Но на самом деле, итерация не решит проблему. Я хочу изменить его. Я только нахожу приемник 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);