Guida Didattica · Automazione Office con Python

Automatizzare Word con Python

Genera, modifica e popola documenti Word in automatico con python-docx.

0 di 5 passaggi completati

01Fondamenti

Cos'è python-docx?

python-docx è una libreria che permette di creare e modificare documenti Word (.docx) direttamente da codice Python, senza aprire manualmente Word. Utile per generare automaticamente report, contratti, lettere o attestati partendo da dati (es. un elenco di clienti in un CSV).

📄DocumentL'intero file Word, contenitore di tutto il contenuto.
📝ParagraphUn paragrafo di testo, con il suo stile e formattazione.
🏃RunUna porzione di testo dentro un paragrafo con formattazione uniforme (es. solo il grassetto).

Il tuo primo documento

from docx import Document

doc = Document()
doc.add_heading("Report Mensile", level=1)
doc.add_paragraph("Questo è il primo paragrafo del documento.")
doc.save("report.docx")

02Concetti Chiave

📑 Titoli (heading) e stili▶

I titoli seguono una gerarchia (livello 1, 2, 3...) come in Word, ed ereditano automaticamente lo stile del template usato.

doc.add_heading("Titolo principale", level=1) doc.add_heading("Sottotitolo", level=2)
✍️ Formattazione del testo (run)▶

Per applicare grassetto, corsivo o colori solo a parte di un paragrafo, si lavora sui "run": porzioni di testo con formattazione propria all'interno dello stesso paragrafo.

p = doc.add_paragraph("Testo normale e ") run = p.add_run("testo in grassetto") run.bold = True
📊 Tabelle▶

python-docx permette di creare tabelle specificando righe e colonne, e di riempirle cella per cella, ideale per dati tabellari (es. un elenco di prodotti).

tabella = doc.add_table(rows=2, cols=2) tabella.cell(0, 0).text = "Prodotto" tabella.cell(0, 1).text = "Prezzo"
🖼️ Immagini▶

Puoi inserire immagini nel documento specificando anche la larghezza desiderata (in pollici o centimetri tramite la libreria docx.shared).

from docx.shared import Inches doc.add_picture("logo.png", width=Inches(2))
🔁 Generazione automatica da dati▶

Il vero potenziale emerge combinando python-docx con un ciclo: puoi generare un documento diverso (es. un attestato personalizzato) per ogni riga di un CSV o DataFrame, automaticamente.

for nome in lista_studenti: doc = Document() doc.add_heading(f"Attestato di {nome}", level=1) doc.save(f"attestato_{nome}.docx")

03Checklist Pratica

Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.

Esempio per il punto 1

from docx import Document

doc = Document()
doc.add_heading("Il mio primo documento", level=1)
doc.save("documento.docx")
1. Crea un documento con un titoloUsa Document() e add_heading() come nell'esempio sopra, poi salva il file.

Esempio per il punto 2

p = doc.add_paragraph("Questo testo è normale, ma ")
run = p.add_run("questa parte è in grassetto")
run.bold = True
doc.save("documento.docx")
2. Aggiungi un paragrafo con testo in grassettoUsa add_paragraph() e un run in grassetto, come nell'esempio sopra.

Esempio per il punto 3

tabella = doc.add_table(rows=1, cols=2)
tabella.cell(0, 0).text = "Nome"
tabella.cell(0, 1).text = "Voto"
3. Crea una tabella con intestazioniUsa add_table() e .cell().text come nell'esempio sopra.

Esempio per il punto 4

studenti = ["Anna", "Luca", "Sara"]
for nome in studenti:
    doc = Document()
    doc.add_heading(f"Attestato di {nome}", level=1)
    doc.save(f"attestato_{nome}.docx")
4. Genera più documenti da una listaUsa un ciclo for per creare un documento diverso per ogni nome, come nell'esempio sopra.
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

Il report settimanale

Crea un documento Word con un titolo, un paragrafo introduttivo e una tabella con 3 righe di dati di vendita (prodotto, quantità, totale).

⏱ 25 minuti📦 File .docx completo🖥️ Individuale
Esercizio 2

Attestati personalizzati in serie

Crea una lista di 5 nomi. Usa un ciclo for per generare un attestato .docx personalizzato per ciascuno, con titolo e data.

⏱ 25 minuti📦 5 file .docx generati🖥️ Individuale
Esercizio 3

Trova l'errore: il documento non si salva

Questo codice non crea nessun file visibile: si scrivono titolo e paragrafi, ma manca l'ultima riga doc.save(...). Spiega perché questa istruzione è indispensabile.

⏱ 10 minuti📦 Spiegazione scritta + codice corretto🖥️ 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