Leer y manipular gráficos de Excel 2016

Posibles escenarios de uso

Aspose.Cells admite la lectura y manipulación de gráficos de Microsoft Excel 2016 que no están presentes en Microsoft Excel 2013 o versiones anteriores.

Leer y manipular gráficos de Excel 2016

El siguiente código de ejemplo carga elejemplo de archivo de Excel que contiene gráficos de Excel 2016 en la primera hoja de cálculo. Lee todos los gráficos uno por uno y cambia su título según su tipo de gráfico. La siguiente captura de pantalla muestra el archivo de Excel de muestra antes de la ejecución del código. Como puede ver, el título del gráfico es el mismo para todos los gráficos.

todo:imagen_alternativa_texto

La siguiente captura de pantalla muestra laarchivo de salida de Excel después de la ejecución del código. Como puede ver, el título del gráfico cambia según su tipo de gráfico.

todo:imagen_alternativa_texto

Código de muestra

// 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);

Salida de consola

Aquí está la salida de la consola del código de muestra anterior cuando se ejecuta con el archivo de Excel de muestra proporcionado.

 Waterfall

Treemap

Sunburst

Histogram

BoxWhisker