Crear y modificar PowerPoint ppt pptx en Python

MS PowerPoint es una aplicación rica en funciones que le permite crear presentaciones interactivas utilizando tablas, gráficos, animaciones y otros elementos. Como programador, es posible que deba automatizar las funciones de manipulación de presentaciones de PowerPoint desde las aplicaciones de Python. En esta publicación, aprenderá cómo crear presentaciones de PowerPoint PPT o PPTX en Python. Además, cubriremos cómo agregar diapositivas, texto, tablas, imágenes y gráficos en las presentaciones mediante programación.

Biblioteca de Python para crear PowerPoint PPT

Aspose.Slides for Python via .NET es una poderosa biblioteca de Python que le permite crear y manipular PowerPoint PPT/PPTX sin MS Office. Además, puede actualizar presentaciones existentes y convertirlas a otros formatos. Puede instalar la biblioteca desde PyPI usando el siguiente comando pip.

> pip install aspose.slides

Crear un PPT de PowerPoint en Python

Primero, creemos una presentación de PowerPoint con una diapositiva vacía, que se agrega de manera predeterminada. Los siguientes pasos muestran cómo crear un PPT de PowerPoint en Python.

  • Primero, cree una instancia de la clase Presentation.
  • Luego, guarde PPT usando el método Presentation.save(string, export.SaveFormat).

El siguiente ejemplo de código muestra cómo crear un archivo PPTX de PowerPoint en Python.

import aspose.slides as slides

# Create a new presentation
with slides.Presentation() as presentation:
    
    # Access the default slide
    slide = presentation.slides[0]
    
    # Save the presentation
    presentation.save("create-presentation.pptx", slides.export.SaveFormat.PPTX)

Abrir un archivo PPTX de PowerPoint en Python

También puede abrir una presentación existente y actualizar su contenido. Para lograr esto, solo necesita proporcionar la ruta del archivo de presentación en el constructor de presentación. El siguiente ejemplo de código muestra cómo abrir un archivo PPT/PPTX existente en Python.

import aspose.slides as slides

# Open presentation
with slides.Presentation("presentation.ppt") as presentation:
    
    # Access the default slide
    slide = presentation.slides[0]
    
    # Save the presentation
    presentation.save("create-presentation.ppt", slides.export.SaveFormat.PPT)

Agregar una diapositiva a PowerPoint PPT en Python

Agreguemos ahora una nueva diapositiva en la presentación que hemos creado antes. También puede agregar diapositivas a una presentación existente de la misma manera abriendo primero la presentación (como se muestra en la sección anterior). Los siguientes son los pasos para agregar una diapositiva en la presentación PPT/PPTX en Python.

  • Primero, cree una presentación nueva (o cargue una existente) usando la clase Presentation.
  • Luego, obtenga la referencia de la colección de diapositivas usando la propiedad Presentation.slides.
  • Agregar diapositiva usando el método Presentation.slides.add\empty\slide(LayoutSlide).
  • Finalmente, guarde la presentación usando el método Presentation.save(string, export.SaveFormat).

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

import aspose.slides as slides

# Create a new presentation
with slides.Presentation() as pres:
    # Get reference of slides
    slds = pres.slides

    # Loop through layout slides
    for i in range(len(pres.layout_slides)):
        # Add an empty slide to the slides collection
        slds.add_empty_slide(pres.layout_slides[i])
        
    # Do some work on the newly added slide

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

Agregar texto a un PPT de PowerPoint en Python

Una vez que hemos agregado una diapositiva, podemos proceder a agregar el contenido. Primero, veamos cómo agregar texto a las diapositivas de la presentación en Python.

  • Cree un PPT/PPTX nuevo (o cargue uno existente) usando la clase Presentation.
  • Obtenga la referencia de la diapositiva de la colección Presentation.slides.
  • Agregue una nueva forma automática en la diapositiva usando el método Slide.shapes.add\auto\shape(slides.ShapeType.RECTANGLE, int, int, int, int) y obtenga la referencia de la forma en un objeto.
  • Agregue un marco de texto a la forma usando el método add\text\frame(string).
  • Accede al párrafo predeterminado del marco de texto.
  • Accede a la parte predeterminada del párrafo.
  • Agregue texto a la parte y guarde la presentación usando el método Presentation.save(string, export.SaveFormat).

El siguiente ejemplo de código muestra cómo agregar texto a la diapositiva en un PPT usando Python.

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Add an AutoShape with type set as Rectangle
    ashp = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)

    # Add TextFrame to the Rectangle
    ashp.add_text_frame(" ")

    # Access the text frame
    txtFrame = ashp.text_frame

    # Create the Paragraph object for text frame
    para = txtFrame.paragraphs[0]

    # Create a Portion object for paragraph
    portion = para.portions[0]

    # Set text
    portion.text = "Aspose TextBox"

    # Save the presentation
    pres.save("add-text-in-presentation.pptx", slides.export.SaveFormat.PPTX)

La siguiente es la captura de pantalla de la diapositiva después de agregar el texto.

agregar texto en powerpoint ppt en python

Leer más sobre cómo trabajar con texto en presentaciones de PowerPoint.

Crear tabla en un PPT de PowerPoint en Python

Las tablas son una parte integral de los documentos y también se usan ampliamente en las presentaciones de PowerPoint. Aspose.Slides for Python hace que sea bastante más fácil para usted crear una tabla en una presentación. Entonces, veamos cómo crear una tabla en un PPT usando Python.

  • Cree un PPT/PPTX nuevo (o cargue uno existente) usando la clase Presentation.
  • Obtenga la referencia de la diapositiva de la colección Presentation.slides.
  • Defina matrices de columnas con ancho y filas con alto.
  • Cree una tabla usando Slide.shapes.addTable() y obtenga la referencia de la tabla en un objeto.
  • Recorra las celdas para aplicar el formato.
  • Agregue texto a las celdas usando la propiedad Table.rows[][].text\frame.text.
  • Guarde la presentación usando el método Presentation.save(string, export.SaveFormat).

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

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

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = 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 = slide.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])):
            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.blue
            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.blue
            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.blue
            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.blue
            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 the presentation
    pres.save("add-table-in-presentation.pptx", slides.export.SaveFormat.PPTX)

El siguiente es el resultado del fragmento de código anterior.

agregar tabla en PowerPoint ppt en Python

Explore otras funciones de creación y manipulación de tablas.

Crear gráfico en un PPT de PowerPoint en Python

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

  • Cree una presentación nueva (o cargue una existente) usando la clase Presentation.
  • Obtenga la referencia de la diapositiva de la colección Presentation.slides.
  • Agregue un gráfico con el tipo deseado usando el método Slide.shapes.addChart(ChartType, single, single, single, single).
  • 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 un PPT usando Python.

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

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Access first slide
    sld = pres.slides[0]

    # Add chart with default data
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Set chart Title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to Show Values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))

    # Take first chart series
    series = chart.chart_data.series[0]

    # Now populating series data

    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.red

    # Take second chart series
    series = chart.chart_data.series[1]

    # Now populating series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))

    # Setting fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # First label will be show Category name
    lbl = series.data_points[0].label
    lbl.data_label_format.show_category_name = True

    lbl = series.data_points[1].label
    lbl.data_label_format.show_series_name = True

    # Show value for third label
    lbl = series.data_points[2].label
    lbl.data_label_format.show_value = True
    lbl.data_label_format.show_series_name = True
    lbl.data_label_format.separator = "/"

    # Save the presentation
    pres.save("create-chart-in-presentation.pptx", slides.export.SaveFormat.PPTX)

La siguiente captura de pantalla muestra el gráfico que hemos creado utilizando el fragmento de código anterior.

agregar gráfico en PowerPoint pptx en Python

Más información sobre la creación de gráficos en presentaciones de PowerPoint.

Agregar una imagen en PowerPoint PPTX en Python

Los siguientes son los pasos para agregar una imagen en un PowerPoint PPTX en Python.

  • Cree una presentación nueva (o cargue una existente) usando la clase Presentation.
  • Obtenga la referencia de la diapositiva de la colección Presentation.slides.
  • Abra una imagen desde un archivo usando el método open(string, string).
  • Agregue una imagen a la colección de imágenes de la presentación usando el método Presentation.images.add\image().
  • Agrega una imagen a la diapositiva usando el método Slide.shapes.add\picture\frame().
  • Guarde la presentación usando el método Presentation.save(string, export.SaveFormat).

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

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Load image from file
    with open("python-logo.png", "rb") as in_file:
      
        # Add image to presentation's image collection
        image = pres.images.add_image(in_file)

        # Add image to slide
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    # Save the presentation
    pres.save("add-image-in-presentation.pptx", slides.export.SaveFormat.PPTX)

El siguiente es el resultado del ejemplo de código anterior.

agregar imágenes en PowerPoint PPT en Python

Lea más sobre trabajar con imágenes en presentaciones de PowerPoint.

Obtenga una licencia gratis

Puede usar Aspose.Slides for Python a través de .NET sin limitaciones de evaluación al obtener una licencia temporal.

Conclusión

En este artículo, ha aprendido cómo crear PowerPoint PPT/PPTX desde cero en Python. Hemos demostrado cómo agregar diapositivas, texto, tablas, gráficos e imágenes en presentaciones de PowerPoint. Además, puede explorar otras características de Aspose.Slides for Python utilizando la documentación. Además, no dude en compartir sus consultas con nosotros a través de nuestro foro.

Ver también