Can I generate image from office OpenXml based chart definition? My idea is to use the program dynamically generate OpenXml definition of a chart and export it as image.
Asked
Active
Viewed 1,763 times
1
1 Answers
2
Aspose.Cells can
- Generate the OpenXML or XLSX Charts,
- Manipulate the existing Charts and
- Export them into Image
Exporting Chart to Image is very simple. Just call Chart.ToImage() method and you have accomplished it.
The following sample code creates the Chart and saves the Excel file in XLSX format.
// Instantiating a Workbook object
Workbook workbook = new Workbook();
// Adding a new worksheet to the Excel object
int sheetIndex = workbook.Worksheets.Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
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.Pyramid, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.NSeries.Add("A1:B3", true);
// Saving the Excel file
workbook.Save(dataDir + "output.xlsx");
The following sample code exports the Chart into Image.
// Converting chart to Bitmap
System.Drawing.Bitmap bitmap = chart.ToImage();
bitmap.Save(dataDir + "chartBMP_out.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
Note: I am working as Developer Evangelist at Aspose

shakeel
- 1,717
- 10
- 14
-
1Sounds good. Using this api will not need Office Excel installation not will it invoke excel.exe through interop right? I know the answer is "correct", but would like to hear from expert. :) – Subhash Makkena Nov 08 '17 at 17:48
-
1when i have to prepare say 100 basic bar charts, How much time will it take. Also can i provide data to chart directly inform of datatable instead of creating Workbook, Worksheet? – Subhash Makkena Nov 08 '17 at 18:09
-
1Aspose.Cells API does not need Microsoft Excel or its installation. It is an independent library and it does not depend on anything except .NET Framework. For your second question, you can import data table into your worksheet with Worksheet.Cells.ImportDataTable() method, similarly you can export your worksheet into data table using Worksheet.Cells.ExportDataTable() method. There are similar other methods available in Aspose.Cells APIs. Once, you import your data you can create your desired chart. Thank you and regards. – shakeel Nov 09 '17 at 06:55