We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Switch Row/Column (switch axes) in xlsio chart

I am looking for a way to switch between axes of the chart being generated with XlsIO library. 

Basically, I am using an excel template to create new sheets and populate some data to them accordingly. I am able to do everything, but somehow the axes don't come-up the way I want. I want a way to simply do what a (Switch Row/Column button in Excel.exe) would do to the generated chart i.e. switch axes of the chart. Or may be control the axis programatically, and switch between X axis and Y axis with code.

Though, I have a solution that I can generate the data for the chart as Transpose of what I am currently generating, but it seems to be a very big deal and almost impossible to change the orientation (transposed) of the data now.

Here is my code:

IChartShapes cs = ws.Charts; // ws is the worksheet being generated
foreach (IChart cs1 in cs)
{
    string strCName = cs1.Name;
    IRange rngs = ws.Range[cs1.Name]; //chart name and named range are the same
    cs1.PrimaryValueAxis.Font.Size = 4;
    cs1.PrimaryCategoryAxis.Font.Size = 4;
    cs1.DisplayBlanksAs = ExcelChartPlotEmpty.NotPlotted;
    cs1.DataRange = rngs;
    IChartCategoryAxis csa = cs1.PrimaryCategoryAxis;
    csa.CategoryLabels.WrapText = true;
}

Any help will be much appreciated.


1 Reply

VS Vikas Sekar Syncfusion Team November 18, 2014 06:16 AM UTC

Hi Pankaj,

 

Thanks for using Syncfusion Products.

In XlsIO there is an boolean property “IsSeriesRow” for chart, which will swap chart series. We have attached a sample and shared the code snippets for your reference.

 

Code Snippets:

IChartShapes chartShapes = worksheet.Charts;

 

            foreach (IChart charShape in chartShapes)

            {

                string strCName = charShape.Name;

                IRange rngs = worksheet.Range[charShape.Name];

 

                charShape.IsSeriesInRows = false; // swaps the series

            }

 

Sample Link:  https://www.syncfusion.com/downloads/support/directtrac/general/Sample1128645809.zip

 

Please let us know this fulfills your requirement and if you need  any clarification.

 

Regards,

Vikas


Loader.
Live Chat Icon For mobile
Up arrow icon