Crear y manipular tablas en PowerPoint Python

Las tablas se utilizan comúnmente para organizar los datos en forma de filas y columnas. Hacen que sea bastante más fácil ver, comprender y analizar los datos. En varios casos, debe insertar tablas en sus presentaciones de PowerPoint. Para lograr eso mediante programación, este artículo cubre cómo crear tablas en PowerPoint PPT o PPTX usando Python. Además, aprenderá a acceder, modificar y dar formato a las tablas de PowerPoint existentes.

Biblioteca de Python para crear y manipular tablas de PowerPoint

Aspose.Slides for Python proporciona un montón de funciones para crear, manipular y convertir documentos de PowerPoint y OpenOffice. Usaremos esta biblioteca para crear, editar y manipular tablas en nuestras presentaciones de PowerPoint. Puede instalar la biblioteca desde PyPI usando el siguiente comando.

> pip install aspose.slides

Crear una tabla en PowerPoint PPT usando Python

Los siguientes son los pasos para crear una tabla en un PowerPoint PPT/PPTX en Python.

  • Primero, use la clase Presentation para cargar o crear una presentación PPT/PPTX.
  • Luego, obtenga la referencia de la diapositiva deseada donde desea agregar la tabla.
  • Después de eso, cree dos matrices para definir el ancho y el alto de las columnas y las filas, respectivamente.
  • Inserte una nueva tabla en la diapositiva usando el método ISlide.shapes.add\table() y obtenga su referencia.
  • Inicie un ciclo para iterar a través de las filas de la tabla.
  • Inicie un ciclo anidado para iterar a través de las celdas de la tabla y realizar las siguientes operaciones en cada iteración.
    • Establezca el texto de la celda usando la propiedad Table.rows[row][cell].text\frame.text.
    • Establezca el estilo de borde de la celda, si es necesario.
  • 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.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create a new presentation (to load an existing presentation, provide file's path in constructor)
with slides.Presentation() as pres:
    # Access first slide
    sld = pres.slides[0]

    # Define columns with widths and rows with heights
    dblCols =  [50, 50, 50] 
    dblRows =  [50, 30, 30, 30, 30] 

    # Add table shape to slide
    tbl = sld.shapes.add_table(100, 50, dblCols, dblRows)

    # Set border format for each cell
    for row in range(len(tbl.rows)):
        for cell in range(len(tbl.rows[row])):
            
            # Add text
            tbl.rows[row][cell].text_frame.text = "Cell_" + cell

            # Set border
            tbl.rows[row][cell].cell_format.border_top.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_top.fill_format.solid_fill_color.color = drawing.Color.red
            tbl.rows[row][cell].cell_format.border_top.width = 5

            tbl.rows[row][cell].cell_format.border_bottom.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_bottom.fill_format.solid_fill_color.color= drawing.Color.red
            tbl.rows[row][cell].cell_format.border_bottom.width =5

            tbl.rows[row][cell].cell_format.border_left.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_left.fill_format.solid_fill_color.color =drawing.Color.red
            tbl.rows[row][cell].cell_format.border_left.width = 5

            tbl.rows[row][cell].cell_format.border_right.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_right.fill_format.solid_fill_color.color = drawing.Color.red
            tbl.rows[row][cell].cell_format.border_right.width = 5
        
    # Merge cells 1 & 2 of row 1
    tbl.merge_cells(tbl.rows[0][0], tbl.rows[1][1], False)

    # Add text to the merged cell
    tbl.rows[0][0].text_frame.text = "Merged Cells"

    # Save PPTX to Disk
    pres.save("table.pptx", slides.export.SaveFormat.PPTX)

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

Crear una tabla en PowerPoint PPT usando Python

Editar una tabla en un PPT de PowerPoint usando Python

También puede modificar una tabla existente accediendo a ella desde la diapositiva de la presentación. Así es como puede acceder a una tabla de PowerPoint y editar su contenido o apariencia en Python.

  • Primero, cargue un archivo PowerPoint PPT/PPTX existente usando la clase Presentation.
  • Luego, obtenga la referencia de la diapositiva deseada en un objeto.
  • Cree un objeto para la tabla e inicialícelo con Ninguno.
  • Iterar a través de todas las formas en la diapositiva usando la colección ISlide.shapes.
  • Filtra las formas de tipo Tabla.
  • Manipule la tabla 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 editar tablas en un PowerPoint PPT usando Python.

# Load presentation
with slides.Presentation("table.pptx") as pres:
    # Access the first slide
    sld = pres.slides[0]

    # Initialize null TableEx
    tbl = None

    # Iterate through the shapes and set a reference to the table found
    for shp in sld.shapes:
        if type(shp) is slides.Table:
            tbl = shp

    # Set the text of the first column of second row
    tbl.rows[0][1].text_frame.text = "New"

    # Save the PPTX to Disk
    pres.save("table1_out.pptx", slides.export.SaveFormat.PPTX)

Formatear texto en tablas de PowerPoint usando Python

Aspose.Slides for Python también le permite aplicar el formato al texto dentro de las tablas. Los siguientes pasos muestran cómo puede lograr esto.

  • Primero, cargue una presentación existente usando la clase Presentation.
  • Luego, obtenga la referencia de la diapositiva deseada en un objeto.
  • Obtenga la referencia de la tabla deseada de la diapositiva en un objeto.
  • Establezca el formato con los objetos PortionFormat, ParagraphFormat y TextFrameFormat.
  • Asigne formato a la tabla usando el método Table.set_text\format().
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

El siguiente ejemplo de código muestra cómo configurar el formato del texto dentro de una tabla en PowerPoint usando Python.

import aspose.slides as slides

# Create a presentation
with slides.Presentation() as presentation:

    # Add table
    someTable = presentation.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])

    # Set table cells' font height
    portionFormat = slides.PortionFormat()
    portionFormat.font_height = 25
    someTable.set_text_format(portionFormat)

    # Set table cells' text alignment and right margin in one call
    paragraphFormat = slides.ParagraphFormat()
    paragraphFormat.alignment = slides.TextAlignment.RIGHT
    paragraphFormat.margin_right = 20
    someTable.set_text_format(paragraphFormat)

    # Set table cells' text vertical type
    textFrameFormat = slides.TextFrameFormat()
    textFrameFormat.text_vertical_type = slides.TextVerticalType.VERTICAL
    someTable.set_text_format(textFrameFormat)

    # Save presentation
    presentation.save("table-formatting.pptx", slides.export.SaveFormat.PPTX)

Bloquear la relación de aspecto de las tablas de PowerPoint en Python

También puede bloquear la relación de aspecto de las tablas en las presentaciones de PowerPoint usando Python, como se demuestra en los siguientes pasos.

  • Primero, cargue una presentación existente usando la clase Presentation.
  • Luego, obtenga la referencia de la diapositiva deseada en un objeto.
  • Cree una tabla o recupere la referencia de una tabla existente en un objeto.
  • Bloquee la relación de aspecto usando la propiedad Table.shape\lock.aspect\ratio\locked.
  • Finalmente, guarde la presentación usando el método Presentation.save(string, SaveFormat).

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

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Add table
    table = pres.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])
    print("Lock aspect ratio set: {0}".format(table.shape_lock.aspect_ratio_locked))
    
    # Lock aspect ratio
    table.shape_lock.aspect_ratio_locked = not table.shape_lock.aspect_ratio_locked
    print("Lock aspect ratio set: {0}".format(table.shape_lock.aspect_ratio_locked))

    # Save presentation
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

Obtenga una licencia gratis

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

Conclusión

Las tablas son una parte integral de los documentos, que se utilizan para organizar los datos. En este artículo, ha aprendido a crear tablas en un PowerPoint PPT/PPTX en Python. Además, ha visto cómo acceder y manipular tablas existentes en presentaciones de PowerPoint mediante programación. Además, también puede visitar la documentación para explorar más sobre Aspose.Slides for Python. Además, puede hacer sus preguntas a través de nuestro foro.

Ver también

Información: Con el convertidor Aspose JPG a PPT o PNG a PPT, puede generar presentaciones de PowerPoint a partir de imágenes simples.