How to add multiple series on a Chart in Excel using C#

夙愿已清 提交于 2019-12-09 13:05:41

问题


I would like to add a chart like the following picture.

This chart has 3 series (Black, Red, Blue).

The following is a block of code that creates "one" series on a chart...

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 is not helpful enough and I can hardly find any tutorial or example on this problem. (Or maybe I am not that good searching them)
It would be appreciated if someone gives me a solution.


回答1:


I could solve this issue with very simple solution.
If I set the yRange (oRange) right, "ChartWizard" method automatically creates the graphs.
So instead of range having "A2:A100", "A2:A100,C2:C100" will generates two lines (series) on one chart and also if the data range includes the heading (or series label), the "ChartWizard" will automatically put the series name in the legend.




回答2:


I am not too Familiar with C# but you could try something along the lines of

Excel.Range NewRangeObject = oSheet.get_Range(SecondyRange, Type.Missing);        

oChart.NewSeries
oChart.SeriesCollection(2).Name = "New Series"
oChart.SeriesCollection(2).Value = NewRangeObject

To be clear I am kind of guessing based on how the VBA code would look.

A higher level solution is to record a macro in excel directly of setting up the chart exactly the way you want.... then port the Code over to C#. It seems that most of the commands are similiar but wrapped in a slightly different snytax.



来源:https://stackoverflow.com/questions/8180608/how-to-add-multiple-series-on-a-chart-in-excel-using-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!