Crear gráficos de Excel C++

Los gráficos son una excelente herramienta para mostrar datos de manera concisa. Además, representan los datos visualmente, lo que facilita el consumo de grandes cantidades de datos. Puede que los gráficos le resulten útiles en situaciones en las que necesite mostrar datos como la comparación del presupuesto mensual o la tasa de adopción del producto. A la luz de eso, este artículo le enseñará cómo crear gráficos en archivos de Excel usando C++.

API de C++ para crear gráficos de Excel

Aspose.Cells for C++ es una biblioteca nativa de C++ que le permite crear, leer y modificar archivos de Excel sin necesidad de instalar Microsoft Excel. La API también admite la creación de gráficos en archivos de Excel. Puede instalar la API a través de NuGet o descargarla directamente desde la sección Descargas.

PM> Install-Package Aspose.Cells.Cpp

Crear un gráfico de líneas en Excel usando C++

Para crear un gráfico de líneas, use el valor de enumeración ChartType\Line mientras agrega el gráfico. Los siguientes son los pasos para crear un gráfico de líneas en un archivo de Excel.

El siguiente es el código de muestra para crear un gráfico de líneas en Excel usando C++.

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Ruta del archivo de Excel de salida
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Crear un nuevo Workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenga la primera hoja de trabajo que se crea de forma predeterminada
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Agregar valores de muestra a las celdas
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// Adición de un gráfico a la hoja de cálculo
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// Acceso a la instancia del gráfico recién agregado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Agregar SeriesCollection (fuente de datos del gráfico) al gráfico que va desde la celda "A1" hasta la "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Guardar el archivo de Excel
workbook->Save(outputChartTypeLine);
Gráfico de linea

Gráfico de líneas generado por el código de muestra

Crear un gráfico piramidal en Excel usando C++

Para crear un gráfico piramidal, use el valor de enumeración ChartType\Pyramid para especificar el tipo de gráfico al agregar el gráfico. Los siguientes son los pasos para crear un gráfico piramidal en un archivo de Excel.

El siguiente es el código de muestra para crear un gráfico piramidal en Excel usando C++.

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Ruta del archivo de Excel de salida
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Crear un nuevo Workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenga la primera hoja de trabajo que se crea de forma predeterminada
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Agregar valores de muestra a las celdas
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// Adición de un gráfico a la hoja de cálculo
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Acceso a la instancia del gráfico recién agregado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Agregar SeriesCollection (fuente de datos del gráfico) al gráfico que va desde la celda "A1" hasta la "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Guardar el archivo de Excel
workbook->Save(outputChartTypePyramid);
Gráfico piramidal

Gráfico piramidal generado por el código de muestra

Crear gráfico de burbujas en Excel usando C++

Para crear un gráfico de burbujas, pase el valor de enumeración ChartType\Bubble al método IWorksheet->GetICharts()->Add(). Los siguientes son los pasos para crear un gráfico de burbujas en un archivo de Excel.

El siguiente es el código de muestra para crear un gráfico de burbujas en Excel usando C++.

// Ruta del directorio de salida.
StringPtr outDir = new String("OutputDirectory\\");

// Ruta del archivo de Excel de salida
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Crear un nuevo Workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenga la primera hoja de trabajo que se crea de forma predeterminada
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Complete los datos para la serie del gráfico
// Valores Y
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Valores Y"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Tamaño de la burbuja
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Tamaño de la burbuja"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// Valores X
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("Valores X"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// Establecer el ancho de la primera columna
worksheet->GetICells()->SetColumnWidth(0, 12);

// Adición de un gráfico a la hoja de cálculo
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// Acceso a la instancia del gráfico recién agregado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Agregar SeriesCollection (fuente de datos del gráfico) al gráfico que va desde B1 a D1
chart->GetNISeries()->Add(new String("B1:D1"), true);

// Establecer tamaños de burbuja
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// Establecer valores del eje X
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Establecer valores del eje Y
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Guardar el archivo de Excel
workbook->Save(outputChartTypeBubble);
Gráfico de burbujas

Gráfico de burbujas generado por el código de muestra

Gráficos adicionales admitidos

Aparte de los gráficos que se muestran arriba, Aspose.Cells for C++ admite muchos tipos de gráficos adicionales. Puede ver la lista completa de gráficos admitidos consultando los valores de enumeración ChartType.

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a crear gráficos en hojas de cálculo de Excel utilizando C++. Específicamente, ha visto cómo crear gráficos de líneas, pirámides y burbujas usando Aspose.Cells for C++. Además, ha visto que la API admite una gran cantidad de otros gráficos que puede crear en sus archivos de Excel. Además de los gráficos, la API proporciona muchas funciones adicionales para trabajar con archivos de Excel. Puede explorar la API en detalle visitando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también