Read and Manipulate Excel 2016 Charts
Contents
[
Hide
]
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.
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.
Sample Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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