Python genera un documento Word dal modello

Stai cercando un modo per creare documenti Word da modelli? Sei arrivato nel posto giusto! In questo post del blog esploreremo la soluzione migliore per generare documenti Word da modelli utilizzando diversi tipi di origini dati in Python. Scopri come sfruttare i modelli predefiniti per generare documenti Word in formato DOCX popolando i segnaposto utilizzando varie origini dati, come XML, JSON o CSV.

Questo articolo tratta i seguenti argomenti:

  1. Libreria Python per generare documenti Word da modelli
  2. Crea documenti Word da modelli utilizzando dati XML
  3. Genera documenti Word da un modello utilizzando dati JSON
  4. Genera documenti Word con dati CSV in Python
  5. Motore di reporting Python LINQ
  6. Risorse gratuite

Libreria Python per generare documenti Word da modelli

Utilizzeremo l’API LINQ Reporting Engine di Aspose.Words for the Python per generare documenti Word da modelli. Questo motore supporta diversi tag per testo, immagini, elenchi, tabelle, collegamenti ipertestuali e segnalibri. Popoliamo i documenti Word che presentano questi tag e li riempiamo con dati provenienti da origini dati XML, JSON o CSV. Quindi iniziamo a generare i documenti Word dai modelli utilizzando Python.

Installazione di Aspose.Words for Python

Puoi scaricare il pacchetto o installare l’API da PyPI utilizzando il seguente comando pip nella console:

> pip install aspose-words

Crea documenti Word da modelli utilizzando dati XML in Python

Per generare il documento Word da un modello utilizzando l’origine dati XML, abbiamo bisogno di un file modello e di dati di origine XML. Creeremo un documento Word (DOC/DOCX) con i seguenti segnaposto come contenuto del documento modello:

Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth:
<<[Birth]:"dd.MM.yyyy">>

Children:
<<foreach [in Child]>><<[Child_Text]>>
<</foreach>>"""

Ecco l’origine dati XML che utilizzeremo in questo esempio:

<Person>
	<Name>John Doe</Name>
	<Age>30</Age>
	<Birth>1989-04-01 4:00:00 pm</Birth>
	<Child>Ann Doe</Child>
	<Child>Charles Doe</Child>
</Person>

Ora possiamo generare facilmente un documento Word da un’origine dati XML seguendo i passaggi seguenti:

  1. Carica il file modello di Word utilizzando la classe Document.
  2. Crea un’istanza della classe XmlDataSource e inizializzala con il percorso del file XML.
  3. Istanziare la classe ReportingEngine.
  4. Chiama il metodo ReportingEngine.BuildReport() con il modello, l’origine dati e il nome dell’origine dati.
  5. Salva il documento Word generato utilizzando il metodo Document.Save().

L’esempio di codice seguente mostra come generare un documento Word da un’origine dati XML in Python.

# Questo esempio di codice illustra come generare un documento Word da un modello utilizzando l'origine dati XML.
# Carica il modello
doc = aw.Document("D:\\Files\\template.docx")

# Carica l'origine dati
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Inizializza il motore di reporting
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Salva il documento
doc.save("D:\\Files\\WordFromXML.docx")

Produzione

Genera documenti Word da modelli utilizzando dati XML in Python

Genera documenti Word da modelli utilizzando dati JSON in Python

Per generare un documento Word utilizzando un’origine dati JSON, utilizzeremo il seguente modello Word:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Quella che segue sarebbe l’origine dati JSON che utilizzeremo per popolare il modello:

[
   {
       Name: "John Smith",
       Contract:
       [
           {
               Client:
               {
                   Name: "A Company"
               },
               Price: 1200000
           },
           {
               Client:
               {
                   Name: "B Ltd."
               },
               Price: 750000
           },
           {
               Client:
               {
                   Name: "C & D"
               },
               Price: 350000
           }
       ]
   },
   {
       Name: "Tony Anderson",
       Contract:
       [
           {
               Client:
               {
                   Name: "E Corp."
               },
               Price: 650000
           },
           {
               Client:
               {
                   Name: "F & Partners"
               },
               Price: 550000
           }
       ]
   },
]

Possiamo facilmente generare il documento Word da un’origine dati JSON seguendo i passaggi menzionati in precedenza. Tuttavia, utilizzeremo la classe JsonDataSource per caricare e utilizzare l’origine dati JSON nel passaggio 2.

L’esempio di codice seguente mostra come generare un documento Word dal modello utilizzando JSON in Python.

# Questo esempio di codice dimostra come generare un documento Word da un modello utilizzando l'origine dati JSON.
# Carica il modello
doc = aw.Document("D:\\Files\\template-json.docx")

# Carica l'origine dati
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Inizializza il motore di reporting
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Salva il documento
doc.save("D:\\Files\\WordFromJSON.docx")

Produzione

Genera documenti Word da modelli utilizzando dati JSON in Python

Genera documenti Word con dati CSV in Python

Per generare il documento Word da CSV, utilizzeremo il seguente modello Word:

<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Column2)]>>

Il modello verrà popolato con i seguenti dati CSV:

John Doe,30,1989-04-01 4:00:00 pm
Jane Doe,27,1992-01-31 07:00:00 am
John Smith,51,1968-03-08 1:00:00 pm

Ora possiamo generare il documento Word dall’origine dati CSV seguendo i passaggi menzionati in precedenza. Tuttavia, utilizzeremo la classe CsvDataSource per caricare e utilizzare l’origine dati CSV nel passaggio 2.

L’esempio di codice seguente mostra come generare un documento Word da un’origine dati CSV in Python.

# Questo esempio di codice dimostra come generare un documento Word da un modello utilizzando l'origine dati JSON.
# Carica il modello
doc = aw.Document("D:\\Files\\template-csv.docx")

# Carica l'origine dati
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Inizializza il motore di reporting
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Salva il documento
doc.save("D:\\Files\\WordFromCSV.docx")

Produzione

Genera documenti Word con dati CSV in Python

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita e generare documenti Word senza limitazioni di valutazione.

Motore di reporting LINQ Python: ulteriori informazioni

Il LINQ Reporting Engine supporta un’ampia gamma di tag per la generazione dinamica di documenti Word completi di funzionalità in Python. Puoi leggere ulteriori informazioni su questi tag, insieme alla loro sintassi, in questo articolo.

Python Genera documento Word da un modello – Risorse gratuite

Oltre a generare documenti Word da modelli, scopri di più sulla creazione, manipolazione e conversione di documenti Word ed esplora varie altre funzionalità della libreria utilizzando le risorse seguenti:

Conclusione

In questo articolo abbiamo imparato come generare documenti Word da modelli in Python. Abbiamo anche visto come utilizzare origini dati XML, JSON e CSV per generare documenti Word. Sfruttando Aspose.Words for Python LINQ Reporting Engine, puoi generare facilmente vari tipi di documenti Word. In caso di ambiguità, non esitate a contattarci sul nostro forum di supporto gratuito.

articoli Correlati