Crear presentaciones de PowerPoint C#

Las presentaciones de MS PowerPoint le permiten crear presentaciones de diapositivas que contienen texto, imágenes, gráficos, animaciones y otros elementos. Varias opciones de formato adicionales le permiten hacer sus presentaciones más atractivas. En esta publicación, aprenderá cómo crear este tipo de presentaciones mediante programación. Aprenderá a crear presentaciones PPTX con texto, tablas, imágenes y gráficos usando C#.

C# API de PowerPoint - Descarga gratuita

Aspose.Slides for .NET es una API de manipulación de presentaciones que le permite crear y manipular documentos de PowerPoint desde sus aplicaciones .NET. La API proporciona casi todas las funciones posibles necesarias para implementar funciones de automatización de PowerPoint básicas y avanzadas. Puede descargar la API o instalarla a través de NuGet.

Install-Package Aspose.Slides.NET

Crear una presentación de PowerPoint en C#

Comencemos por crear una presentación de PowerPoint vacía usando Aspose.Slides for .NET. Los siguientes son los pasos para hacerlo.

El siguiente ejemplo de código muestra cómo crear una presentación de PowerPoint en C#.

// Cree una instancia de un objeto Presentation que represente un archivo de presentación
using (Presentation presentation = new Presentation())
{
    // Obtener la primera diapositiva
    ISlide slide = presentation.Slides[0];

    // Añadir contenido a la diapositiva...
    
    // Guardar presentación
    presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}

Abra una presentación de PowerPoint existente en C#

No necesita esforzarse más para abrir una presentación de PowerPoint existente. Simplemente proporcione la ruta del archivo PPTX al constructor de la clase Presentation y listo. El siguiente ejemplo de código muestra cómo abrir una presentación PPTX existente.

// Abriendo el archivo de presentación pasando la ruta del archivo al constructor de la clase Presentation
Presentation pres = new Presentation("OpenPresentation.pptx");

// Imprimir el número total de diapositivas en la presentación
System.Console.WriteLine(pres.Slides.Count.ToString());

Agregar una diapositiva a la presentación en C#

Una vez que haya creado la presentación, puede comenzar a agregarle las diapositivas. Los siguientes son los pasos para agregar una diapositiva en la presentación usando Aspose.Slides for .NET.

El siguiente ejemplo de código muestra cómo agregar una diapositiva en una presentación de PowerPoint usando C#.

// Instanciar clase de presentación que representa el archivo de presentación
using (Presentation pres = new Presentation())
{
    // Instanciar la clase SlideCollection
    ISlideCollection slds = pres.Slides;

    for (int i = 0; i < pres.LayoutSlides.Count; i++)
    {
        // Agregar una diapositiva vacía a la colección Diapositivas
        slds.AddEmptySlide(pres.LayoutSlides[i]);

    }

    // Guarde el archivo PPTX en el disco
    pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);

}

Insertar texto en una diapositiva usando C#

Ahora podemos agregar contenido a las diapositivas en la presentación de PowerPoint. Primero agreguemos un fragmento de texto a la diapositiva siguiendo los siguientes pasos.

  • Crea una nueva presentación usando la clase Presentation.
  • Obtener la referencia de la diapositiva en la presentación.
  • Agregue una IAutoForma con ShapeType como Rectángulo en una posición específica de la diapositiva.
  • Obtenga la referencia de ese objeto IAutoShape recién agregado.
  • Agregue un TextFrame a la autoforma que contiene el texto predeterminado.
  • Guarde la presentación como un archivo PPTX.

El siguiente ejemplo de código muestra cómo agregar texto a una diapositiva en una presentación usando C#.

// Instanciar PresentationEx// Instanciar PresentationEx
using (Presentation pres = new Presentation())
{
    // Obtener la primera diapositiva
    ISlide sld = pres.Slides[0];

    // Agregar una autoforma de tipo rectángulo
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // Añadir TextFrame al Rectángulo
    ashp.AddTextFrame(" ");

    // Acceso al marco de texto
    ITextFrame txtFrame = ashp.TextFrame;

    // Crear el objeto Párrafo para marco de texto
    IParagraph para = txtFrame.Paragraphs[0];

    // Crear objeto de porción para párrafo
    IPortion portion = para.Portions[0];

    // Establecer texto
    portion.Text = "Aspose TextBox";

    // Guardar la presentación en el disco
    pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Crear tabla en una presentación usando C#

Aspose.Slides for .NET proporciona una manera fácil de crear una tabla en el documento de presentación. Los siguientes son los pasos para ello.

  • Cree una instancia de la clase Presentation.
  • Obtener la referencia de una diapositiva utilizando su índice.
  • Defina matrices de columnas con ancho y filas con alto.
  • Agregue una tabla a la diapositiva usando el método Slide.Shapes.AddTable() expuesto por el objeto IShapes y obtenga la referencia a la tabla en la instancia ITable.
  • Iterar a través de cada celda para aplicar el formato.
  • Agregue texto a las celdas usando la propiedad Table.Rows[][].TextFrame.Text.
  • Guarde la presentación como un archivo PPTX.

El siguiente ejemplo de código muestra cómo crear una tabla en una diapositiva de una presentación de PowerPoint.

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

// Definir columnas con anchos y filas con alturas
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// Agregar forma de tabla a la diapositiva
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// Establecer formato de borde para cada celda
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;

		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
	}
}

// Combinar las celdas 1 y 2 de la fila 1
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);

// Agregar texto a la celda combinada
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";

// Guardar PPTX en disco
pres.Save("table.pptx", SaveFormat.Pptx);

Crear gráfico en una presentación usando C#

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

  • Cree una instancia de la clase Presentation.
  • Obtener la referencia de una diapositiva por índice.
  • Agregue un gráfico con el tipo deseado usando el método ISlide.Shapes.AddChart(ChartType, Single, Single, Single, Single).
  • Agregue un título de gráfico.
  • Acceda a la hoja de trabajo de datos del gráfico.
  • Borre todas las series y categorías predeterminadas.
  • Añadir nuevas series y categorías.
  • Agregue nuevos datos de gráficos para series de gráficos.
  • Establezca el color de relleno para la serie de gráficos.
  • Agregue etiquetas de series de gráficos.
  • Guarde la presentación como un archivo PPTX.

El siguiente ejemplo de código muestra cómo agregar un gráfico en una presentación 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.TextFrameForOverriding.Text = "Título de muestra";
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 = Color.Red;


// 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.Green;

// 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("AsposeChart_out.pptx", SaveFormat.Pptx);

Obtenga más información sobre los gráficos de presentación aquí.

Agregar una imagen en la presentación

Los siguientes son los pasos para agregar imágenes en la diapositiva de la presentación.

El siguiente ejemplo de código muestra cómo agregar una imagen a una presentación en C#.

// Crear presentación
using (var p = new Presentation())
{
	// Leer imagen
	var svgContent = File.ReadAllText("image.svg");
	
	// Agregar imagen a la colección de imágenes
	var emfImage = p.Images.AddFromSvg(svgContent);
	
	// Agregar imagen a la diapositiva
	p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
	
	// Guardar presentación
	p.Save("presentation.pptx", SaveFormat.Pptx);        
}

Conclusión

En este artículo, ha aprendido a crear presentaciones de PowerPoint desde cero usando C#. Además, ha visto cómo agregar diapositivas, texto, tablas, imágenes y gráficos en presentaciones PPTX nuevas o existentes. Puede obtener más información sobre la API utilizando la documentación.

Ver también

Sugerencia: además de la creación de diapositivas o presentaciones, Aspose.Slides proporciona muchas características que le permiten trabajar con presentaciones. Por ejemplo, utilizando sus propias API, Aspose desarrolló un visor en línea gratuito para presentaciones de Microsoft PowerPoint.