Genera slide, testi e immagini automaticamente con python-pptx.
python-pptx è una libreria per creare e modificare presentazioni PowerPoint (.pptx) via codice. Utile per generare automaticamente slide con dati aggiornati, report periodici o presentazioni personalizzate in serie.
from pptx import Presentation prs = Presentation() layout = prs.slide_layouts[0] # layout "Titolo e sottotitolo" slide = prs.slides.add_slide(layout) slide.shapes.title.text = "Report Vendite Q1" slide.placeholders[1].text = "Presentato da Marco Consiglio" prs.save("presentazione.pptx")
Ogni slide si basa su un layout predefinito (es. "Titolo e sottotitolo", "Titolo e contenuto", "Slide vuota"), che determina quali placeholder sono disponibili.
Sono gli "spazi vuoti" predefiniti nel layout: titolo, sottotitolo, corpo del testo. Si accede a essi tramite indice o tramite shapes.title per il titolo.
Il corpo del testo di una slide è organizzato in paragrafi: aggiungendone diversi si crea un elenco puntato, uno per riga.
Puoi inserire immagini o forme geometriche in punti precisi della slide, specificando posizione e dimensione tramite la libreria pptx.util.
Combinando python-pptx con un ciclo, puoi generare una slide diversa per ogni elemento di una lista o riga di un DataFrame: perfetto per report periodici automatici.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.
Esempio per il punto 1
from pptx import Presentation prs = Presentation() layout = prs.slide_layouts[0] slide = prs.slides.add_slide(layout) slide.shapes.title.text = "La mia prima presentazione" prs.save("presentazione.pptx")
Esempio per il punto 2
layout_contenuto = prs.slide_layouts[1] slide2 = prs.slides.add_slide(layout_contenuto) slide2.shapes.title.text = "Punti chiave" corpo = slide2.placeholders[1].text_frame corpo.text = "Primo punto"
Esempio per il punto 3
p2 = corpo.add_paragraph() p2.text = "Secondo punto" p3 = corpo.add_paragraph() p3.text = "Terzo punto"
Esempio per il punto 4
categorie = ["Nord", "Centro", "Sud"] for zona in categorie: s = prs.slides.add_slide(prs.slide_layouts[1]) s.shapes.title.text = f"Vendite {zona}" prs.save("presentazione.pptx")
Tocca ogni termine per vederne la definizione.
Crea una presentazione con una slide titolo e due slide di contenuto, ciascuna con un elenco puntato di 3 punti.
Crea una lista di 5 prodotti con relativo fatturato. Usa un ciclo for per generare una slide per ciascuno, con titolo del prodotto e il fatturato nel corpo del testo.
Questo codice genera un errore: si prova ad accedere a slide.placeholders[5] su un layout che ne ha solo 2 (titolo e corpo). Spiega perché l'indice del placeholder deve rispettare quelli effettivamente disponibili nel layout scelto.
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.