Read and Manipulate Excel 2016 Charts

Possible Usage Scenarios

Aspose.Cells supports the reading and manipulation of Microsoft Excel 2016 charts which are not present in Microsoft Excel 2013 or earlier versions.

Read and Manipulate Excel 2016 Charts

The following sample code loads the sample Excel file which contains Excel 2016 charts in the first worksheet. It reads all charts one by one and changes its title as per its chart type. The following screenshot shows the sample Excel file before the execution of the code. As you can see, the chart title is the same for all charts.

todo:image_alt_text

The following screenshot shows the output Excel file after the execution of code. As you can see, the chart title is changed as per its chart type.

todo:image_alt_text

Sample Code

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Source directory path
StringPtr srcDir = new String("..\\Data\\01_SourceDirectory\\");
//Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
//Path of input excel file
StringPtr sampleReadAndManipulateExcel2016Charts = srcDir->StringAppend(new String("sampleReadAndManipulateExcel2016Charts.xlsx"));
//Path of output excel file
StringPtr outputReadAndManipulateExcel2016Charts = outDir->StringAppend(new String("outputReadAndManipulateExcel2016Charts.xlsx"));
// Load sample Excel file containing Excel 2016 charts
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(sampleReadAndManipulateExcel2016Charts);
// Access the first worksheet which contains the charts
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Access all charts one by one and read their types
for (int i = 0; i < worksheet->GetICharts()->GetCount(); i++)
{
// Access the chart
intrusive_ptr<IChart> ch = worksheet->GetICharts()->GetObjectByIndex(i);
//Get the chart type
ChartType chartType = ch->GetType();
//Convert chart type enum to string
StringPtr strChartType = NULL;
switch (chartType)
{
case Aspose::Cells::Charts::ChartType_BoxWhisker:
strChartType = new String("BoxWhisker");
break;
case Aspose::Cells::Charts::ChartType_Histogram:
strChartType = new String("Histogram");
break;
case Aspose::Cells::Charts::ChartType_Sunburst:
strChartType = new String("Sunburst");
break;
case Aspose::Cells::Charts::ChartType_Treemap:
strChartType = new String("Treemap");
break;
case Aspose::Cells::Charts::ChartType_Waterfall:
strChartType = new String("Waterfall");
break;
default:
break;
}
// Print chart type
Aspose::Cells::Systems::Console::WriteLine(strChartType);
// Change the title of the charts as per their types
StringPtr strTitle = (StringPtr)(new String("Chart Type is "))->Append(strChartType);
ch->GetITitle()->SetText(strTitle);
}
// Save the workbook
workbook->Save(outputReadAndManipulateExcel2016Charts);

Console Output

Here is the console output of the above sample code when executed with the provided sample Excel file.

 Waterfall

Treemap

Sunburst

Histogram

BoxWhisker