Guida Didattica · Automazione Office con Python

Automatizzare PowerPoint con Python

Genera slide, testi e immagini automaticamente con python-pptx.

0 di 5 passaggi completati

01Fondamenti

Cos'è 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.

📽️PresentationL'intero file PowerPoint, contenitore di tutte le slide.
🖼️SlideUna singola diapositiva, basata su un layout.
📦PlaceholderUno spazio predefinito nel layout (titolo, testo, immagine).

La tua prima slide

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")

02Concetti Chiave

📐 Slide layout▶

Ogni slide si basa su un layout predefinito (es. "Titolo e sottotitolo", "Titolo e contenuto", "Slide vuota"), che determina quali placeholder sono disponibili.

prs.slide_layouts[1] # spesso "Titolo e contenuto"
📦 Placeholder▶

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.

slide.placeholders[1].text = "Testo del corpo"
📝 Elenchi puntati▶

Il corpo del testo di una slide è organizzato in paragrafi: aggiungendone diversi si crea un elenco puntato, uno per riga.

corpo = slide.placeholders[1].text_frame corpo.text = "Primo punto" p = corpo.add_paragraph() p.text = "Secondo punto"
🖼️ Immagini e forme▶

Puoi inserire immagini o forme geometriche in punti precisi della slide, specificando posizione e dimensione tramite la libreria pptx.util.

from pptx.util import Inches slide.shapes.add_picture("grafico.png", Inches(1), Inches(2), width=Inches(4))
🔁 Generazione automatica di slide▶

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.

for prodotto in lista_prodotti: slide = prs.slides.add_slide(prs.slide_layouts[1]) slide.shapes.title.text = prodotto

03Checklist Pratica

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")
1. Crea una presentazione con una slide titoloUsa Presentation() e slide_layouts[0], come nell'esempio sopra.

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"
2. Aggiungi una seconda slide con titolo e corpoUsa il layout "Titolo e contenuto" come nell'esempio sopra.

Esempio per il punto 3

p2 = corpo.add_paragraph()
p2.text = "Secondo punto"
p3 = corpo.add_paragraph()
p3.text = "Terzo punto"
3. Aggiungi un elenco puntato di 3 puntiUsa add_paragraph() per aggiungere altre due righe al corpo, come nell'esempio sopra.

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")
4. Genera più slide da una listaUsa un ciclo for per creare una slide per ogni elemento, come nell'esempio sopra, e salva.
5. Completa il quiz di verificaScendi in fondo alla guida e rispondi correttamente ad almeno l'80% delle domande.

04Glossario Interattivo

Tocca ogni termine per vederne la definizione.

05Quiz di Verifica

06Esercitazioni Pratiche

Esercizio 1

La presentazione aziendale

Crea una presentazione con una slide titolo e due slide di contenuto, ciascuna con un elenco puntato di 3 punti.

⏱ 25 minuti📦 File .pptx con 3 slide🖥️ Individuale
Esercizio 2

Report prodotti in serie

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.

⏱ 25 minuti📦 File .pptx con 5 slide generate🖥️ Individuale
Esercizio 3

Trova l'errore: il placeholder inesistente

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.

⏱ 10 minuti📦 Spiegazione scritta🖥️ Individuale o in coppia

🎓 Attestato di completamento

Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.

0 / 5 passaggi completati