crear gráficos en powerpoint ppt C#

Los gráficos se utilizan para resumir y representar visualmente los datos dentro de las presentaciones de PowerPoint. Por lo tanto, PowerPoint ofrece una amplia gama de tipos de gráficos para visualizar los datos. Entre todos, los tipos de gráficos más utilizados incluyen gráficos circulares, gráficos de líneas, gráficos de barras, histogramas, gráficos de acciones, etc. En este artículo, aprenderá cómo crear estos gráficos en presentaciones de PowerPoint usando C#.

API de C# para crear gráficos en PowerPoint

Aspose.Slides for .NET es una biblioteca de clases de C# que le permite crear y manipular presentaciones de PowerPoint desde aplicaciones .NET. Además, la API le permite crear y agregar gráficos a las presentaciones sin problemas. Aspose.Slides for .NET se puede descargar como DLL o instalar a través de NuGet.

PM> Install-Package Aspose.Slides

Crear gráfico de columnas en PowerPoint PPT usando C#

En esta sección, aprenderá cómo crear un gráfico de columnas y agregar categorías y series para completar ese gráfico. Los siguientes son los pasos para realizar esta operación.

Como demostración, el siguiente ejemplo de código muestra cómo crear un gráfico de columnas en una presentación de PowerPoint usando C#.

// Instanciar la clase de presentación que representa el archivo PPTX
Presentation pres = new Presentation();

// Acceder a la primera diapositiva
ISlide sld = pres.Slides[0];

// Agregar gráfico con datos predeterminados
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Tabla de configuración Título
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Establecer la primera serie para Mostrar valores
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Configuración del índice de la hoja de datos del gráfico
int defaultWorksheetIndex = 0;

// Obtener la hoja de trabajo de datos del gráfico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Eliminar series y categorías generadas por defecto
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Agregando nueva serie
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Agregar nuevas categorías
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Tomar la primera serie de gráficos
IChartSeries series = chart.ChartData.Series[0];

// Ahora llenando datos de series
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Configuración del color de relleno para la serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = System.Drawing.Color.Blue;


// Tome la segunda serie de gráficos
series = chart.ChartData.Series[1];

// Ahora llenando datos de series
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// Configuración del color de relleno para la serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Orange;

// La primera etiqueta mostrará el nombre de la categoría
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// Mostrar valor para la tercera etiqueta
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";

// Guardar presentación con gráfico
pres.Save("column-chart.pptx", SaveFormat.Pptx);

La siguiente es la captura de pantalla del gráfico de columnas resultante.

crear un gráfico de columnas en powerpoint en C#

Crear gráfico de dispersión en PowerPoint PPT usando C#

Los siguientes son los pasos para crear un gráfico de dispersión en la presentación de PowerPoint usando C#.

  • Crea una nueva presentación usando la clase Presentation.
  • Obtenga la referencia de las diapositivas en el objeto ISlide.
  • Agregue un tipo de gráfico ScatterWithSmoothLines con datos predeterminados y obtenga su referencia en el objeto IChart.
  • Acceda al libro de datos del gráfico en el objeto IChartDataWorkbook y borre la serie predeterminada.
  • Agregue nuevas series a los datos del gráfico.
  • Acceda a cada serie en el objeto IChartSeries y agregue puntos de datos a la serie.
  • Establezca el marcador para la serie usando la propiedad IChartSeries.Marker.
  • Guarde la presentación usando el método Presentation.Save(String, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico de dispersión en presentaciones de PowerPoint usando C#.

// Instanciar la clase de presentación que representa el archivo PPTX
Presentation pres = new Presentation();

// Acceder a la primera diapositiva
ISlide sld = pres.Slides[0];

// Agregar gráfico con datos predeterminados
IChart chart = sld.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);

// Obtener el índice de la hoja de cálculo de datos del gráfico predeterminado
int defaultWorksheetIndex = 0;

// Obtener la hoja de trabajo de datos del gráfico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Eliminar serie de demostración
chart.ChartData.Series.Clear();

// Agregar nueva serie
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.Type);

// Tomar la primera serie de gráficos
IChartSeries series = chart.ChartData.Series[0];

// Agregue un nuevo punto (1: 3) allí.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));

// Agregar nuevo punto (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));

// Editar el tipo de serie
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;

// Cambiar el marcador de serie del gráfico
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;

// Tome la segunda serie de gráficos
series = chart.ChartData.Series[1];

// Agregue un nuevo punto (5:2) allí.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));

// Añadir nuevo punto (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));

// Añadir nuevo punto (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));

// Añadir nuevo punto (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));

// Cambiar el marcador de serie del gráfico
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Circle;

// Guardar presentación con gráfico
pres.Save("scattered-chart.pptx", SaveFormat.Pptx);

La siguiente captura de pantalla muestra el gráfico de dispersión resultante.

crear un gráfico disperso en powerpoint en C#

Crear gráfico circular en PowerPoint PPT usando C#

Los siguientes son los pasos para crear un gráfico circular en una presentación de PowerPoint usando C#.

El siguiente ejemplo de código muestra cómo crear un gráfico circular en una presentación de PowerPoint usando C#.

// Instanciar la clase de presentación que representa el archivo PPTX
Presentation presentation = new Presentation();

// Acceder a la primera diapositiva
ISlide slides = presentation.Slides[0];

// Agregar gráfico con datos predeterminados
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 100, 100, 400, 400);

// Tabla de configuración Título
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Establecer la primera serie para Mostrar valores
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Configuración del índice de la hoja de datos del gráfico
int defaultWorksheetIndex = 0;

// Obtener la hoja de trabajo de datos del gráfico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Eliminar series y categorías generadas por defecto
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();

// Agregar nuevas categorías
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "First Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "2nd Qtr"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "3rd Qtr"));

// Agregando nueva serie
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1, "Series 1"), chart.Type);

// Ahora llenando datos de series
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// No funciona en la nueva versión
// Agregar nuevos puntos y configurar el color del sector
// serie.EsColorVariado = verdadero;
chart.ChartData.SeriesGroups[0].IsColorVaried = true;

IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Orange;
// Configuración del borde del sector
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Gray;
point.Format.Line.Width = 3.0;
//point.Format.Line.Style = LineStyle.ThinThick;
//point.Format.Line.DashStyle = LineDashStyle.DashDot;

IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.BlueViolet;

// Configuración del borde del sector
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.Blue;
point1.Format.Line.Width = 3.0;
//point1.Format.Line.Style = LineStyle.Single;
//point1.Format.Line.DashStyle = LineDashStyle.LargeDashDot;

IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.YellowGreen;

// Configuración del borde del sector
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
point2.Format.Line.Width = 2.0;
//point2.Format.Line.Style = LineStyle.ThinThin;
//point2.Format.Line.DashStyle = LineDashStyle.LargeDashDotDot;

// Cree etiquetas personalizadas para cada una de las categorías para nuevas series
IDataLabel lbl1 = series.DataPoints[0].Label;

// lbl.ShowCategoryName = verdadero;
lbl1.DataLabelFormat.ShowValue = true;

IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowValue = true;
lbl2.DataLabelFormat.ShowLegendKey = true;
lbl2.DataLabelFormat.ShowPercentage = true;

IDataLabel lbl3 = series.DataPoints[2].Label;
lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;

// Mostrar líneas directrices para el gráfico
//series.Labels.DefaultDataLabelFormat.ShowLeaderLines = verdadero;

// Configuración del ángulo de rotación para sectores de gráficos circulares
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;

// Guardar presentación con gráfico
presentation.Save("pie-chart.pptx", SaveFormat.Pptx);

La siguiente es la captura de pantalla del gráfico circular generado.

crear un gráfico circular en powerpoint en C#

Agregar gráfico de histograma en PowerPoint PPTX usando C#

Los siguientes son los pasos para crear un gráfico de histograma en presentaciones de PowerPoint usando Aspose.Slides for .NET.

  • Cree una instancia de la clase Presentation.
  • Obtener la referencia de una diapositiva en el objeto ISlide por su índice.
  • Agregue un gráfico de histograma con datos predeterminados.
  • Borre las series y categorías predeterminadas.
  • Acceda al libro de datos del gráfico en el objeto IChartDataWorkbook.
  • Agregue una nueva serie y obtenga su referencia en el objeto IChartSeries.
  • Agregar puntos de datos a la serie.
  • Establezca el tipo de agregación del eje del gráfico.
  • Guarde la presentación usando el método Presentation.Save(String, SaveFormat).

El siguiente ejemplo de código muestra cómo crear un gráfico de histograma con C#.

// Cargar o crear presentación
using (Presentation pres = new Presentation())
{
    // Agregar gráfico de histograma
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Histogram, 50, 50, 500, 400);
    chart.ChartData.Categories.Clear();
    chart.ChartData.Series.Clear();

    // Acceder al Workbook de datos de gráfico
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Borrar libro
    wb.Clear(0);

    // Agregar serie de gráficos
    IChartSeries series = chart.ChartData.Series.Add(ChartType.Histogram);
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A1", 15));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A2", -41));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A3", 16));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A4", 10));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A5", -23));
    series.DataPoints.AddDataPointForHistogramSeries(wb.GetCell(0, "A6", 16));

    chart.Axes.HorizontalAxis.AggregationType = AxisAggregationType.Automatic;

    // Guardar presentación
    pres.Save("histogram-chart.pptx", SaveFormat.Pptx);
}

La siguiente es la captura de pantalla del gráfico de histograma creado.

crear un gráfico de histograma en powerpoint en C#

Cree un gráfico de acciones en PowerPoint usando C#

El gráfico de cotizaciones también es uno de los tipos de gráficos más utilizados en las presentaciones de PowerPoint. Los siguientes son los pasos para crear un gráfico de cotizaciones.

  • Cree una nueva presentación de PowerPoint utilizando la clase Presentation.
  • Obtenga la referencia de la diapositiva en un objeto ISlide usando el índice de la diapositiva.
  • Agregue el gráfico OpenHighLowClose a la diapositiva y obtenga su referencia en el objeto IChart.
  • Borre las series y categorías predeterminadas.
  • Acceda a los datos del gráfico en el objeto IChartDataWorkbook.
  • Agregue nuevas series y categorías al gráfico.
  • Acceda a cada serie de gráficos y agregue puntos de datos.
  • Especifique el formato HiLowLines.
  • Guarde la presentación usando el método Presentation.Save(String, SaveFormat).

El siguiente ejemplo de código muestra cómo agregar un gráfico de cotizaciones a una presentación de PowerPoint mediante C#.

// Cargar o crear presentación
using (Presentation pres = new Presentation())
{
    // Agregar gráfico
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);

    // Borrar categorías y series
    chart.ChartData.Series.Clear();
    chart.ChartData.Categories.Clear();

    // Acceder al Workbook de datos de gráfico
    IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

    // Añadir categorías
    chart.ChartData.Categories.Add(wb.GetCell(0, 1, 0, "A"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 2, 0, "B"));
    chart.ChartData.Categories.Add(wb.GetCell(0, 3, 0, "C"));

    // Agregar serie
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 1, "Open"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 2, "High"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 3, "Low"), chart.Type);
    chart.ChartData.Series.Add(wb.GetCell(0, 0, 4, "Close"), chart.Type);

    // Agregar puntos de datos
    IChartSeries series = chart.ChartData.Series[0];

    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 1, 72));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 1, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 1, 38));

    series = chart.ChartData.Series[1];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 2, 172));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 2, 57));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 2, 57));

    series = chart.ChartData.Series[2];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 3, 12));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 3, 13));

    series = chart.ChartData.Series[3];
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 1, 4, 25));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 2, 4, 38));
    series.DataPoints.AddDataPointForStockSeries(wb.GetCell(0, 3, 4, 50));

    // Establecer si el gráfico tiene barras arriba/abajo
    chart.ChartData.SeriesGroups[0].UpDownBars.HasUpDownBars = true;

    // Especificar formato de línea alto/bajo
    chart.ChartData.SeriesGroups[0].HiLowLinesFormat.Line.FillFormat.FillType = FillType.Solid;

    foreach (IChartSeries ser in chart.ChartData.Series)
    {
        ser.Format.Line.FillFormat.FillType = FillType.NoFill;
    }

    // Guardar presentación
    pres.Save("stock-chart.pptx", SaveFormat.Pptx);
}

La siguiente es la captura de pantalla del gráfico de acciones creado.

crear un gráfico de cotizaciones en powerpoint en C#

Más tipos de gráficos

Además de los gráficos mencionados anteriormente, también hay otros tipos de gráficos que puede agregar a las presentaciones de PowerPoint. Para obtener más información sobre los tipos de gráficos admitidos, puede visitar este artículo de documentación.

Obtenga una licencia de API gratuita

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

Conclusión

En este artículo, ha aprendido a crear gráficos en presentaciones de PowerPoint usando C#. Además, la guía paso a paso y los ejemplos de código muestran cómo agregar gráficos de columnas, gráficos de dispersión, gráficos circulares, histogramas y gráficos de cotizaciones. Puede explorar más sobre Aspose.Slides for .NET usando documentación.

Ver también