目次
1. ¿Qué es python-pptx?
python-pptx es una librería que permite crear, editar y guardar presentaciones de PowerPoint directamente desde programas en Python. Con esto, se eliminan tareas manuales tradicionales, permitiendo la generación automática de presentaciones dinámicas basadas en datos y optimizando tareas repetitivas.1.1 Usos principales de python-pptx
- Creación automática de presentaciones: Es posible generar diapositivas automáticamente basadas en datos para reuniones o informes.
- Edición eficiente: Se pueden añadir diapositivas o texto a archivos existentes de PowerPoint y actualizar el contenido en poco tiempo.
1.2 Ventajas de manipular PowerPoint desde Python
En comparación con el trabajo manual en PowerPoint, usar python-pptx permite la automatización mediante programación. Esto posibilita generar grandes volúmenes de diapositivas de una sola vez o agilizar la creación de informes periódicos, reduciendo significativamente el tiempo de trabajo.2. Configuración de python-pptx
2.1 Procedimiento de instalación
La instalación de python-pptx es muy sencilla. Solo necesitas ejecutar el siguiente comando:pip install python-pptx
Además, si no cuentas con un entorno de Python configurado, puedes usar conda
para preparar el entorno e instalar la librería.2.2 Estructura básica de python-pptx
Primero se importa la librería y se utiliza la clasePresentation()
para crear una nueva presentación. Este es el punto de partida para manipular PowerPoint.from pptx import Presentation
prs = Presentation()
Este código crea una nueva presentación y la prepara para añadir diapositivas o texto.
3. Creación y guardado de una presentación
3.1 Creación de una nueva presentación
Primero, veamos cómo crear y guardar una presentación con python-pptx. El siguiente código muestra cómo generar un nuevo archivo de PowerPoint y guardarlo:from pptx import Presentation
prs = Presentation()
prs.save('new_presentation.pptx')
Con esto, el archivo de PowerPoint se guarda en el directorio actual con el nombre especificado.3.2 Cómo añadir diapositivas
Para añadir diapositivas dentro de la presentación, se usa el métodoadd_slide()
. Existen 11 plantillas de diseño disponibles para elegir.slide_layout = prs.slide_layouts[0] # Seleccionar diapositiva de título
slide = prs.slides.add_slide(slide_layout)
Este código añade una nueva diapositiva basada en el diseño seleccionado.4. Manipulación del contenido de las diapositivas
4.1 Inserción y formato de texto
Para insertar texto, se usan los marcadores de posición (título o subtítulo). Luego, con el objetoTextFrame
, se aplica formato. Ejemplo:title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Título de la presentación"
subtitle.text = "Subtítulo"
También es posible modificar el tamaño de fuente, color o añadir saltos de línea:title.text = "Diapositiva generada
automáticamente con Python"
4.2 Añadir imágenes y formas
Para insertar imágenes en una diapositiva, se utiliza el métodoadd_picture()
, especificando la posición y el tamaño.from pptx.util import Inches
img_path = 'image.png'
left = Inches(1)
top = Inches(2)
slide.shapes.add_picture(img_path, left, top)
Además, se pueden añadir formas desde el menú de figuras de PowerPoint mediante programación:from pptx.enum.shapes import MSO_SHAPE
shape = slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE, Inches(1), Inches(1), Inches(2), Inches(1))
shape.text = "Texto en la figura"

5. Técnicas avanzadas de automatización
5.1 Generación automática de diapositivas
Con un bucle, es posible generar muchas diapositivas automáticamente. Ejemplo:for i in range(10):
slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(slide_layout)
title = slide.shapes.title
title.text = f"Diapositiva {i+1}"
Este código genera 10 diapositivas con numeración consecutiva.5.2 Edición de presentaciones existentes
También es posible cargar un archivo existente de PowerPoint y editar su contenido. Por ejemplo, para actualizar un título:prs = Presentation('existing_presentation.pptx')
slide = prs.slides[0]
title = slide.shapes.title
title.text = "Título actualizado"
prs.save('updated_presentation.pptx')