Python generiert ein Word Dokument aus einer Vorlage

Suchen Sie nach einer Möglichkeit, Word Dokumente aus Vorlagen zu erstellen? Hier sind Sie richtig! In diesem Blogbeitrag untersuchen wir die beste Lösung zum Generieren von Word Dokumenten aus Vorlagen unter Verwendung verschiedener Arten von Datenquellen in Python. Erfahren Sie, wie Sie vordefinierte Vorlagen nutzen, um Word Dokumente im DOCX-Format zu generieren, indem Sie Platzhalter mithilfe verschiedener Datenquellen wie XML, JSON oder CSV füllen.

Dieser Artikel behandelt die folgenden Themen:

  1. Python Bibliothek zum Generieren von Word Dokumenten aus Vorlagen
  2. Word Dokumente aus Vorlagen mit XML-Daten erstellen
  3. Word Dokumente aus Vorlage mit JSON-Daten generieren
  4. Word Dokumente mit CSV-Daten in Python generieren
  5. Python LINQ Reporting Engine
  6. Kostenlose Ressourcen

Python Bibliothek zum Generieren von Word Dokumenten aus Vorlagen

Wir werden die LINQ Reporting Engine von Aspose.Words for Python API zum Generieren von Word Dokumenten aus Vorlagen verwenden. Diese Engine unterstützt verschiedene Tags für Text, Bilder, Listen, Tabellen, Hyperlinks und Lesezeichen. Wir füllen Word Dokumente mit diesen Tags und füllen sie mit Daten aus XML-, JSON oder CSV-Datenquellen. Beginnen wir also mit der Generierung der Word Dokumente aus den Vorlagen mit Python.

Aspose.Words for Python installieren

Sie können das Paket herunterladen oder die API von PyPI installieren, indem Sie den folgenden pip-Befehl in der Konsole verwenden:

> pip install aspose-words

Erstellen Sie Word Dokumente aus einer Vorlage mit XML-Daten in Python

Um das Word Dokument aus einer Vorlage mithilfe der XML-Datenquelle zu generieren, benötigen wir eine Vorlagendatei und XML-Quelldaten. Wir erstellen ein Word Dokument (DOC/DOCX) mit den folgenden Platzhaltern als Inhalt des Vorlagendokuments:

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

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

Hier ist die XML-Datenquelle, die wir in diesem Beispiel verwenden werden:

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

Jetzt können wir ganz einfach ein Word Dokument aus einer XML-Datenquelle generieren, indem wir die folgenden Schritte ausführen:

  1. Laden Sie die Word-Vorlagendatei mithilfe der Document Klasse.
  2. Erstellen Sie eine Instanz der Klasse XmlDataSource und initialisieren Sie sie mit dem Pfad der XML-Datei.
  3. Instanziieren Sie die ReportingEngine Klasse.
  4. Rufen Sie die Methode ReportingEngine.BuildReport() mit der Vorlage, der Datenquelle und dem Datenquellennamen auf.
  5. Speichern Sie das generierte Word Dokument mit der Methode Document.Save().

Das folgende Codebeispiel zeigt, wie Sie in Python ein Word Dokument aus einer XML-Datenquelle generieren.

# Dieses Codebeispiel zeigt, wie Sie mithilfe einer XML-Datenquelle ein Word Dokument aus einer Vorlage generieren.
# Laden Sie die Vorlage
doc = aw.Document("D:\\Files\\template.docx")

# Laden Sie die Datenquelle
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Reporting-Engine initialisieren
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Speichern Sie das Dokument
doc.save("D:\\Files\\WordFromXML.docx")

Ausgabe

Generieren Sie Word Dokumente aus Vorlagen mithilfe von XML-Daten in Python

Generieren Sie Word Dokumente aus Vorlagen mithilfe von JSON-Daten in Python

Zum Generieren eines Word Dokuments mithilfe einer JSON-Datenquelle verwenden wir die folgende Word-Vorlage:

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

Das Folgende wäre die JSON-Datenquelle, die wir zum Füllen der Vorlage verwenden:

[
   {
       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
           }
       ]
   },
]

Wir können das Word Dokument ganz einfach aus einer JSON-Datenquelle generieren, indem wir die zuvor genannten Schritte ausführen. Wir werden jedoch die Klasse JsonDataSource zum Laden und Verwenden der JSON-Datenquelle in Schritt 2 verwenden.

Das folgende Codebeispiel zeigt, wie Sie mithilfe von JSON in Python ein Word Dokument aus der Vorlage generieren.

# Dieses Codebeispiel zeigt, wie Sie mithilfe einer JSON-Datenquelle ein Word Dokument aus einer Vorlage generieren.
# Laden Sie die Vorlage
doc = aw.Document("D:\\Files\\template-json.docx")

# Laden Sie die Datenquelle
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Reporting-Engine initialisieren
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Speichern Sie das Dokument
doc.save("D:\\Files\\WordFromJSON.docx")

Ausgabe

Generieren Sie Word Dokumente aus Vorlagen mithilfe von JSON-Daten in Python

Generieren Sie Word Dokumente mit CSV-Daten in Python

Zum Generieren des Word Dokuments aus CSV verwenden wir die folgende Word-Vorlage:

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

Die Vorlage wird mit den folgenden CSV-Daten gefüllt:

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

Jetzt können wir das Word Dokument aus der CSV-Datenquelle generieren, indem wir die zuvor genannten Schritte ausführen. Wir werden jedoch die Klasse CsvDataSource zum Laden und Verwenden der CSV-Datenquelle in Schritt 2 verwenden.

Das folgende Codebeispiel zeigt, wie Sie in Python ein Word Dokument aus einer CSV-Datenquelle generieren.

# Dieses Codebeispiel zeigt, wie Sie mithilfe einer JSON-Datenquelle ein Word Dokument aus einer Vorlage generieren.
# Laden Sie die Vorlage
doc = aw.Document("D:\\Files\\template-csv.docx")

# Laden Sie die Datenquelle
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Reporting-Engine initialisieren
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Speichern Sie das Dokument
doc.save("D:\\Files\\WordFromCSV.docx")

Ausgabe

Generieren Sie Word Dokumente mit CSV-Daten in Python

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten und Word Dokumente ohne Evaluierungseinschränkungen erstellen.

Python LINQ Reporting Engine – Lesen Sie mehr

Die LINQ Reporting Engine unterstützt eine breite Palette von Tags für die dynamische Generierung voll ausgestatteter Word Dokumente in Python. Weitere Informationen zu diesen Tags und ihrer Syntax finden Sie in diesem Artikel.

Python generiert ein Word Dokument aus einer Vorlage – kostenlose Ressourcen

Erfahren Sie neben dem Generieren von Word Dokumenten aus Vorlagen mehr über das Erstellen, Bearbeiten und Konvertieren von Word Dokumenten und erkunden Sie mithilfe der folgenden Ressourcen verschiedene andere Funktionen der Bibliothek:

Abschluss

In diesem Artikel haben wir gelernt, wie man Word Dokumente aus Vorlagen in Python generiert. Wir haben auch gesehen, wie man XML-, JSON und CSV-Datenquellen zum Generieren von Word Dokumenten verwendet. Durch die Nutzung von Aspose.Words for Python LINQ Reporting Engine können Sie problemlos verschiedene Arten von Word Dokumenten generieren. Bei Unklarheiten können Sie uns gerne über unser kostenloses Support-Forum kontaktieren.

In Verbindung stehende Artikel