xlsgen > overview > Charts

Here are a few code samples to create native Excel charts. The first example shows how little code you need in order to create a chart. 3 lines of source code. The second example dives deeper into details. I am using C++ code, but you can use any of the languages supported by xlsgen, including VB, all .NET languages and Java.


A barebone chart, leaving all automatic settings untouched


  // A barebone chart, leaving all automatic settings untouched
  xlsgen::IXlsChartPtr chart = wksht->NewChart(xlsgen::charttype_bar2D,
                                                     8, //row1
                                                     1, //col1
                                                     16, //row2
                                                     5 //col2
                                                 );
  chart->DataSource->SeriesInRows = TRUE;
  chart->DataSource->Range = L"Sheet1!R1C2:R3C6";

 


A 3D chart, quite formatted


  // A 3D chart, quite formatted
  xlsgen::IXlsChartPtr chart = wksht->NewChart(xlsgen::charttype_area3D,
                                                     18, //row1
                                                      1, //col1
                                                     32, //row2
                                                      8 //col2
                                                 );
  chart->DataSource->SeriesInRows = TRUE;
  chart->DataSource->Range = L"Sheet1!R1C2:R3C6";
  chart->Legend->Show = xlsgen::chartlegend_hidden;
  
  // add, position and format a title
  chart->MainTitle->Label = L"a sample 3D chart";
  chart->MainTitle->Options->X = 80;
  chart->MainTitle->Options->Y = 5;
  chart->MainTitle->Options->Patterns->Borders->Shadow = TRUE;
  chart->MainTitle->Options->Patterns->Area->Type = xlsgen::chartareatype_automatic;

  // format the background chart area
  chart->SurfaceArea->Options->Patterns->Borders->RoundCorners = TRUE;
  chart->SurfaceArea->Options->Patterns->Borders->Type = xlsgen::chartbordertype_custom;
  chart->SurfaceArea->Options->Patterns->Borders->Style = xlsgen::chartborderstyle_dashdot;
  chart->SurfaceArea->Options->Patterns->Borders->Weight = xlsgen::chartborderweight_double;
  chart->SurfaceArea->Options->Patterns->Borders->Color = xlsgen::colorRed;
  chart->SurfaceArea->Options->Patterns->Area->Type = xlsgen::chartareatype_custom;
  chart->SurfaceArea->Options->Patterns->Area->Gradient->SingleColor->GradientStyle =
                xlsgen::gradientstyle_verticall0;
  chart->SurfaceArea->Options->Patterns->Area->Gradient->SingleColor->Color =  
                0xDD8800;
  chart->SurfaceArea->Options->Patterns->Area->Gradient->SingleColor->LightThreshold = 
                100;

  // format the first series with a gradient
  chart->SeriesByIndex[1]->Options->Patterns->Borders->Type = xlsgen::chartbordertype_none;
  chart->SeriesByIndex[1]->Options->Patterns->Area->Type = 
                xlsgen::chartareatype_custom;
  chart->SeriesByIndex[1]->Options->Patterns->Area->Gradient->SingleColor->GradientStyle = 
                xlsgen::gradientstyle_diagonalUp0;
  chart->SeriesByIndex[1]->Options->Patterns->Area->Gradient->SingleColor->Color = 
                0x0000DD;
  chart->SeriesByIndex[1]->Options->Patterns->Area->Gradient->SingleColor->LightThreshold = 
               100;
			   
  // format the second series with a texture
  chart->SeriesByIndex[2]->Options->Patterns->Area->Type = 
               xlsgen::chartareatype_custom;
  chart->SeriesByIndex[2]->Options->Patterns->Area->PredefinedTexture->TextureStyle = 
               xlsgen::charttexture_WhiteMarble;
			   
  // format the Z axis, and change the ticks
  xlsgen::IXlsChartAxisPtr y_axis = chart->YAxis[xlsgen::chartaxis_primary];
  y_axis->Options->Font->Italic = TRUE;
  y_axis->Options->Font->Bold = TRUE;
  y_axis->Options->Font->Color = 0x00DD0000;
  y_axis->MinorTicks = xlsgen::chartaxisticks_cross;

And this just scratches the surface of things. There are many objects to program against like data labels, data points, gridlines, and the learning curve is greatly reduced thanks to a composition metaphore used across the chart object model.

 

To see more in-depth how to manipulate charts with code, you may want to take a look at one of the following pages :

In addition to being generated, charts are rendered if you do a print, preview, or generate a PDF document. See here for more information.

 

xlsgen documentation. © ARsT Design all rights reserved.