如何使用C#在Excel中的图表上添加多个系列

我想添加如下图所示的图表。

Excel图表

这个图表有3个系列(黑色,红色,蓝色)。

以下是在图表上创build“一个”系列的代码块。

Excel._Workbook oWorkbook = (Excel._Workbook)oSheet.Parent; Excel._Chart oChart = (Excel._Chart)oWorkbook.Charts.Add(oSheet, Type.Missing, Type.Missing, Type.Missing); // Y axis data Excel.Range oRange = oSheet.get_Range(yRange, Type.Missing); // Creates a chart oChart.ChartWizard(oRange, chartType, 2, Excel.XlRowCol.xlColumns, Type.Missing, Type.Missing, false, title, xAxisTitle, yAxisTitle, Type.Missing); // Sets X axis category Excel.Series oSeries = (Excel.Series)oChart.SeriesCollection(1); oSeries.XValues = oSheet.get_Range(xRange, Type.Missing); oChart.Name = chartName; 

MSDN API是没有足够的帮助,我几乎找不到任何教程或例如这个问题。 (或者我可能不是很好的search他们)
如果有人给我一个解决scheme,将不胜感激。

我可以用非常简单的解决scheme解决这个问题。
如果我右键设置yRange(oRange),“ChartWizard”方法自动创buildgraphics。
因此,“A2:A100,C2:C100”的范围不是“A2:A100”的范围,而是在一个图表上生成两行(系列),如果数据范围包含标题(或系列标签),“ChartWizard”将自动将系列名称放在图例中。

我不太熟悉C#,但是你可以尝试一些东西

 Excel.Range NewRangeObject = oSheet.get_Range(SecondyRange, Type.Missing); oChart.NewSeries oChart.SeriesCollection(2).Name = "New Series" oChart.SeriesCollection(2).Value = NewRangeObject 

要清楚,我是基于VBA代码看起来的猜测。

一个更高层次的解决scheme是在excel中直接按照您想要的方式设置图表,然后将代码移植到C#中。 看起来大部分命令都是类似的,但是包裹在一个稍微不同的snytax中。