Generare documenti di testo formattati è un'esigenza comune in molti processi aziendali. La libreria `python-docx` permette di creare e modificare file Microsoft Word (`.docx`) usando Python, senza aver bisogno che Word sia installato.
Installazione
Si installa con `pip`:
pip install python-docx
Creare un Nuovo Documento da Zero
Puoi creare un nuovo documento, aggiungere paragrafi, titoli, tabelle e salvarlo.
from docx import Document
document = Document()
document.add_heading('Titolo del Documento', level=0)
p = document.add_paragraph('Un primo paragrafo con del testo in ')
p.add_run('grassetto').bold = True
p.add_run(' e in ')
p.add_run('corsivo.').italic = True
document.add_heading('Titolo di Livello 1', level=1)
document.add_page_break()
document.save('nuovo_documento.docx')
Modificare un Documento Esistente (Usarlo come Template)
La funzionalità più potente è forse quella di usare un documento `.docx` esistente come un template. Puoi creare un documento Word con una formattazione complessa, inserire dei "segnaposto" (es. `{{NOME_CLIENTE}}`) e poi usare Python per sostituire questi segnaposto con i dati reali.
Sebbene `python-docx` non abbia una funzione di "trova e sostituisci" diretta, si può scrivere una funzione che itera su tutti i paragrafi e le tabelle del documento per eseguire le sostituzioni. Per workflow di "mail merge" più complessi, la libreria `docx-mailmerge` è ancora più specifica e potente.
Casi d'Uso
- Generazione di Report: Creare report personalizzati partendo da dati presi da un database o da un file Excel.
- Creazione di Fatture o Contratti: Popolare automaticamente un template di contratto con i dati del cliente.
- Conversione di Dati: Estrarre il testo e le tabelle da un file Word per salvarli in un altro formato.
Questa tecnica è fondamentale per l'automazione dei processi d'ufficio, come vedremo nel nostro prossimo articolo sulla generazione di PDF.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza