Chart to Image

Rendering Charts

Aspose.Cells APIs support to convert the Excel Charts to images formats without requiring any additional tools or applications. In order to provide rendering support, the Chart class has exposed ToImage methods with a verity of overloads to best suit the application requirements.

Rendering Charts to Images

The Chart.ToImage method has a verity of overloads to support simple as well as advanced rendering. If the application requirement is to render the chart in its default dimensions, we suggest you use the Chart.ToImage method as follow.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its index to WorksheetCollection
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding Series Collection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Converting chart to image
chart.ToImage(dataDir + "chartEMF_out.emf", ImageType.Emf);
// Converting chart to Bitmap
System.Drawing.Bitmap bitmap = chart.ToImage();
bitmap.Save(dataDir + "chartBMP_out.bmp", System.Drawing.Imaging.ImageFormat.Bmp);

It is also possible to render the charts to images with advanced settings. Aspose.Cells APIs have exposed an overload version of Chart.ToImage method that could accept an instance of ImageOrPrintOptions, while allowing to specify parameters such as resolution, smoothing mode, image format and so on.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Workbook
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its index to WorksheetCollection
Worksheet worksheet = workbook.Worksheets[sheetIndex];
// Adding sample values to cells
worksheet.Cells["A1"].PutValue(50);
worksheet.Cells["A2"].PutValue(100);
worksheet.Cells["A3"].PutValue(150);
worksheet.Cells["B1"].PutValue(4);
worksheet.Cells["B2"].PutValue(20);
worksheet.Cells["B3"].PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding Series Collection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Create an instance of ImageOrPrintOptions and set a few properties
ImageOrPrintOptions options = new ImageOrPrintOptions()
{
VerticalResolution = 300,
HorizontalResolution = 300,
SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias
};
// Convert chart to image with additional settings
chart.ToImage(dataDir + "chartPNG_out.png", options);

Supported Chart Types for Rendering

There are a few chart types that are currently not supported for rendering. Such chart types contain N in the Supported column of the below table.

Chart type Chart sub-type Supported
Column Column Y
  ColumnStacked Y
  Column100PercentStacked Y
  Column3DClustered Y
  Column3DStacked Y
  Column3D100PercentStacked Y
  Column3D Y
Bar Bar Y
  BarStacked Y
  Bar100PercentStacked Y
  Bar3DClustered Y
  Bar3DStacked Y
  Bar3D100PercentStacked Y
Line Line Y
  LineStacked Y
  Line100PercentStacked Y
  LineWithDataMarkers Y
  LineStackedWithDataMarkers Y
  Line100PercentStackedWithDataMarkers Y
  Line3D Y
Pie Pie Y
  Pie3D Y
  PiePie Y
  PieExploded Y
  Pie3DExploded Y
  PieBar Y
Scatter Scatter Y
  ScatterConnectedByCurvesWithDataMarker Y
  ScatterConnectedByCurvesWithoutDataMarker Y
  ScatterConnectedByLinesWithDataMarker Y
  ScatterConnectedByLinesWithoutDataMarker Y
Area Area Y
  AreaStacked Y
  Area100PercentStacked Y
  Area3D Y
  Area3DStacked Y
  Area3D100PercentStacked Y
Doughnut Doughnut Y
  DoughnutExploded Y
Radar Radar Y
  RadarWithDataMarkers Y
  RadarFilled Y
Surface Surface3D N
  SurfaceWireframe3D N
  SurfaceContour N
  SurfaceContourWireframe N
Bubble Bubble Y
  Bubble3D N
Stock StockHighLowClose Y
  StockOpenHighLowClose Y
  StockVolumeHighLowClose Y
  StockVolumeOpenHighLowClose Y
Cylinder Cylinder Y
  CylinderStacked Y
  Cylinder100PercentStacked Y
  CylindricalBar Y
  CylindricalBarStacked Y
  CylindricalBar100PercentStacked Y
  CylindricalColumn3D Y
Cone Cone Y
  ConeStacked Y
  Cone100PercentStacked Y
  ConicalBar Y
  ConicalBarStacked Y
  ConicalBar100PercentStacked Y
  ConicalColumn3D Y
Pyramid Pyramid Y
  PyramidStacked Y
  Pyramid100PercentStacked Y
  PyramidBar Y
  PyramidBarStacked Y
  PyramidBar100PercentStacked Y
  PyramidColumn3D Y
BoxWhisker BoxWhisker Y
Funnel Funnel Y
ParetoLine ParetoLine Y
Sunburst Sunburst Y
Treemap Treemap Y
Waterfall Waterfall Y
Histogram Histogram Y
Map Map N

Advance topics

  • Convert Chart to PDF