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
- Crear un gráfico de líneas en Excel usando C++
- Crear un gráfico piramidal en Excel usando C++
- Crear gráfico de burbujas en Excel usando C++
- Gráficos adicionales admitidos
- Obtenga una licencia gratis
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.
- En primer lugar, cree una instancia de la clase IWorkbook.
- Recupere la hoja de trabajo en la que desea agregar el gráfico mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Inserte los datos para el gráfico.
- Agregue el gráfico a la hoja de trabajo usando IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn) método.
- Acceda al gráfico con su índice usando el método IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Agregue la fuente de datos para el gráfico usando IChart->GetNISeries()->Add (intrusive\ptrAspose::Cells::Systems::String area, bool isVertical) método.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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);
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.
- En primer lugar, cree una instancia de la clase IWorkbook.
- Recupere la hoja de trabajo donde desea agregar el gráfico usando el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Inserte los datos para el gráfico.
- Agregue el gráfico a la hoja de trabajo usando IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn) método.
- Acceda al gráfico con su índice utilizando el método IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Agregue la fuente de datos para el gráfico usando IChart->GetNISeries()->Add (intrusive\ptrAspose::Cells::Systems::String area, bool isVertical) método.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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);
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.
- En primer lugar, cree una instancia de la clase IWorkbook.
- Recupere la hoja de trabajo donde desea agregar el gráfico mediante el método IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Inserte los datos para el gráfico.
- Agregue el gráfico a la hoja de trabajo usando IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn).
- Acceda al gráfico con su índice usando el método IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Agregue la fuente de datos, los tamaños de las burbujas, los valores X y los valores Y para el gráfico mediante IChart->GetNISeries()->Add (intrusive\ptrAspose::Cells::Systems::String area, bool isVertical), IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes (intrusive\ptrAspose::Cells::Systems::String value), IChart->GetNISeries()->GetObjectByIndex(0)->SetXValues (intrusivo\ptrAspose::Cells::Systems::String value), IChart->GetNISeries()->GetObjectByIndex(0)->SetValues (intrusivo\ptrAspose::Cells::Systems::String value) métodos respectivamente.
- Finalmente, guarde el archivo de Excel usando IWorkbook->Save (intrusive\ptrAspose::Cells::Systems::String nombre de archivo) método.
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á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.