Crear y manipular tablas en PowerPoint C#

Las tablas se utilizan para organizar los datos en forma de filas y columnas. Además, organizan y resumen los datos para que puedan verse y analizarse fácilmente. MS PowerPoint también le permite insertar tablas en las presentaciones. En consecuencia, este artículo cubre cómo crear y manipular tablas en presentaciones de PowerPoint usando C#.

API de C# para crear y manipular tablas en PowerPoint

Para crear y manipular tablas en presentaciones de PowerPoint, usaremos Aspose.Slides for .NET. La API le permite crear, manipular y convertir documentos de PowerPoint y OpenOffice. Puede descargar la DLL de la API y agregarle una referencia en su proyecto. Además, puede instalarlo usando NuGet.

PM> Install-Package Aspose.Slides.NET

Crear una tabla en presentaciones de PowerPoint usando C#

Crear una tabla usando Aspose.Slides for .NET es pan comido. Los siguientes pasos muestran cómo crear una tabla en una presentación de PowerPoint usando C#.

  • Primero, cree una nueva presentación o cargue una existente usando la clase Presentation.
  • Luego, obtenga la referencia de la diapositiva deseada en un objeto ISlide.
  • Defina el ancho y alto de columnas y filas respectivamente en arreglos dobles[].
  • Inserte una nueva tabla en la presentación usando el método ISlide.Shapes.AddTable().
  • Obtenga la referencia de la tabla recién creada en un objeto ITable.
  • Cree un bucle para iterar a través de las filas de la tabla.
  • Cree un bucle anidado para iterar a través de las celdas de la tabla y, en cada iteración, realice las siguientes operaciones.
  • Finalmente, guarde la presentación usando el método Presentation.Save(String, SaveFormat).

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

// Crear o cargar presentación
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 y texto para cada celda
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{  
		// Agregar texto a la celda
		tbl.Rows[row][cell].TextFrame.Text = "Cells_" + 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;
	}
}

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

La siguiente captura de pantalla muestra la tabla que hemos creado usando el código anterior.

Crear tabla en PowerPoint C#

Acceder a una tabla en una presentación usando C#

También puede acceder a las tablas en las presentaciones de PowerPoint existentes y manipularlas según sea necesario. Los siguientes son los pasos para acceder a las tablas en una presentación.

  • Primero, cargue una presentación existente usando la clase Presentation.
  • Luego, obtenga la referencia de la diapositiva deseada en un objeto ISlide.
  • Cree una instancia de ITable e inicialícela con nulo.
  • Iterar a través de todos los objetos IShape en la colección ISlide.Shapes.
  • Filtra las formas de tipo ITable.
  • Escriba la forma en ITable y manipúlela según sea necesario.
  • Finalmente, guarde la presentación usando el método Presentation.Save(String, SaveFormat).

El siguiente ejemplo de código muestra cómo acceder a las tablas en una presentación de PowerPoint mediante C#.

// Cargar presentación
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
    // Accede a la primera diapositiva
    ISlide sld = pres.Slides[0];

    // Inicializar TableEx nulo
    ITable tbl = null;

    // Iterar a través de las formas y establecer una referencia a la tabla encontrada
    foreach (IShape shp in sld.Shapes)
        if (shp is ITable)
            tbl = (ITable)shp;

    // Establecer el texto de la primera columna de la segunda fila
    tbl[0, 1].TextFrame.Text = "New";

    //Escribir el PPTX en el disco
    pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Dar formato al texto en las tablas de PowerPoint con C#

Aspose.Slides for .NET también le permite establecer el formato de las tablas con bastante facilidad, como se demuestra en los pasos a continuación.

El siguiente ejemplo de código muestra cómo configurar el formato de la tabla en PowerPoint usando C#.

// Crear o cargar presentación
Presentation presentation = new Presentation();

// Obtener referencia de la diapositiva
ISlide slide = presentation.Slides[0];

// Obtener referencia de la tabla
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// Establecer la altura de fuente de las celdas de la tabla
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// Establecer la alineación del texto de las celdas de la tabla y el margen derecho en una sola llamada
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// Establecer el tipo vertical de texto de las celdas de la tabla
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

// Guardar presentación
presentation.Save("result.pptx", SaveFormat.Pptx);

Bloquear la relación de aspecto de las tablas en PowerPoint usando C#

También puede bloquear la relación de aspecto de las tablas en las presentaciones de PowerPoint usando C#. Los siguientes son los pasos para lograrlo.

El siguiente ejemplo de código muestra cómo bloquear la relación de aspecto de la tabla en las presentaciones de PowerPoint.

// Cargar presentación
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obtener referencia de la tabla
    ITable table = (ITable)pres.Slides[0].Shapes[0];
    Console.WriteLine($"Relación de aspecto de bloqueo set: {table.ShapeLock.AspectRatioLocked}");

    // Relación de aspecto de bloqueo
    table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
    Console.WriteLine($"Relación de aspecto de bloqueo set: {table.ShapeLock.AspectRatioLocked}");

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

Obtenga una licencia de API gratuita

Puede usar Aspose.Slides for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a crear tablas en presentaciones de PowerPoint usando C#. Además, ha visto cómo acceder y manipular tablas existentes en las presentaciones de PowerPoint mediante programación. Además, puede visitar la documentación para explorar más sobre Aspose.Slides for .NET. Además, puede hacer sus preguntas a través de nuestro foro.

Ver también