2010-12-13 28 views
0

我正在尝试在C#中为Excel 2007编写VSTO加载项,并且在读取先前生成的图表中的值时遇到问题。外接程序复制大数据集的一部分,然后重新映射具有相同属性但不同工作表和源数据的数据。当我尝试从原始工作表中获取图表标题(和其他属性)时,它会导致异常。我试图用Globals.ThisAddIn.Application.Charts的几个变种作为出发点,但我一直没有成功。我的假设是,我不是在正确地引用旧图表。VSTO Excel加载项的读取图表信息

任何帮助,将不胜感激。

谢谢。

回答

0

经过一番挖掘,我意识到我本应该从图表的SeriesCollection中读取属性。类似以下的工作

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; 
} 
相关问题