如何在C#中获取图表的Excel XValue

我正在编写一些代码来操纵使用C#的excle文件中的图表。 其中一个关键要求是获得Chart SeriesCollection的XValue属性。 我试图通过索引来访问它,但它不起作用,虽然我可以在Visual Studio中的“监视”窗口中看到值列表。 从Watch窗口中,我注意到s.XValue的types是dynamic的{object []} ,我从来没有见过,而obj.ToString()是System.Object [*] 。 问题是如果XValue不支持索引,我可以从XValue属性获取每个值。

顺便说一句,在互联网上search,我只能find方法来设置Excel的单元格范围XValue,但没有find如何得到XValue。 我真的很感激,如果有人可以build议。

Excel._Worksheet worksheet = (Excel._Worksheet)book.Worksheets[a]; Excel.ChartObject chartObj = (Excel.ChartObject)worksheet.ChartObjects(1); if (chartObj != null) { Excel.Chart chart = (Excel.Chart)chartObj.Chart; var s = (Excel.Series)chart.SeriesCollection(1); object obj = s.XValues; //How to get s.XValues[1], s.XValues[2], s.XValues[3]... } 

尝试这个:

 var chart = chartObj.Chart as Excel.Chart; var s = chart.SeriesCollection(1) as Excel.Series; var xValues = (s.XValues as object) as Array; foreach (var xVal in xValues) { MessageBox.Show(xVal.ToString()); } 

以及这是什么`对象[*]`types与COM互操作?