2010-12-13 4 views
0

Я пытаюсь написать надстройку VSTO для Excel 2007 в C#, и у меня возникают проблемы с чтением значений из ранее созданных диаграмм. Надстройка дублирует часть большого набора данных, а затем заменяет данные теми же свойствами, что и другие рабочие листы и источники данных. Когда я пытаюсь получить название диаграммы (и другие свойства) с исходного листа, это вызывает исключение. Я попытался использовать несколько вариантов Globals.ThisAddIn.Application.Charts как отправную точку, но я не увенчался успехом. Мое предположение состоит в том, что я неправильно отношусь к старой диаграмме.Чтение данных диаграммы для надстройки VSTO Excel

любая помощь будет оценена.

Спасибо.

ответ

0

После некоторого рытья я понял, что должен был считывать свойства из серии Совокупность диаграммы. Что-то похожее на следующее работает

snippet Excel.ChartObjects xlCharts = (Excel.ChartObjects) newWorkSheet.ChartObjects (Type.Missing);

Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 60, 720, 432); 
Excel.Chart chart = myChart.Chart; 
Excel.ChartObject oldchartObject = (Excel.ChartObject)VstoWorksheet.ChartObjects(1); 
Excel.Chart oldchart = oldchartObject.Chart; 
Excel.SeriesCollection seriesCollection = (Excel.SeriesCollection)chart.SeriesCollection(Type.Missing); 
Excel.SeriesCollection oldSeriesCollection = (Excel.SeriesCollection)oldchart.SeriesCollection(Type.Missing); 
Excel.Series oSeries; 
for (int i = 1; i <= (ColumnCount - 2); i++) 
{ 
    oSeries = seriesCollection.NewSeries(); 
    Excel.Series oOldSeries = oldSeriesCollection.Item(i); 
    oOldSeries = (Excel.Series)oldchart.SeriesCollection(i); 
    oSeries.MarkerStyle = oOldSeries.MarkerStyle; 
    oSeries.Name = oOldSeries.Name; 
} 
Смежные вопросы