Michael C
Michael C

Reputation: 177

C# Adding secondary Axis using Excel Interop

I built and application that will create an Excel spreadsheet from an SQL database. It originally had three series and the following code works great. However, I am now being asked to add two new series that scale differently in a secondary axis. I've added the ranges but I cannot add the secondary axis using Excel interop.

Has anyone done this before and if so what am I missing?

 ChartObjects xlCharts = (Excel.ChartObjects)mSheet.ChartObjects(Type.Missing);

 ChartObject myChart = (Excel.ChartObject)xlCharts.Add(358, (double)xlsRange.Top, 650, 350);
 myChart.Name = "myCool_Chart";
 Chart chartPage = myChart.Chart;
 chartPage.ChartType = XlChartType.xlLine;
 Series series = myChart.Chart.SeriesCollection().Add(dSheet.Range["$F$2:$H$124,$P$2:$Q$124"]);//F thru H is left axis and P thru Q should be secondary axis            
 series.XValues = dSheet.Range["$C$2:$C$124"];// Quart and Year values on bottom axis            
 chartPage.SeriesCollection(1).Name = "My first series";
 chartPage.SeriesCollection(2).Name = "My Second Series";
 chartPage.SeriesCollection(2).Format.Line.ForeColor.RGB = (int)XlRgbColor.rgbDarkOrange;            
 chartPage.SeriesCollection(3).Name = "My Third Series";
 chartPage.SeriesCollection(4).Name = "My fourth Series"; //this series should be secondary
 chartPage.SeriesCollection(5).Name = "My fifth Series";  //this series should be secondary

Upvotes: 0

Views: 1395

Answers (1)

MacroMarc
MacroMarc

Reputation: 3324

You can use the AxisGroup property:

chartPage.SeriesCollection(4).Name = "My fourth Series"; //this series should be secondary
chartPage.SeriesCollection(5).Name = "My fifth Series";  //this series should be secondary
chartPage.SeriesCollection(4).AxisGroup = XlAxisGroup.xlSecondary //2
chartPage.SeriesCollection(5).AxisGroup = XlAxisGroup.xlSecondary //2

Upvotes: 4

Related Questions