Python Generování dokumentu Word ze šablony

Hledáte způsob, jak vytvořit dokumenty Word ze šablon? Jste na správném místě! V tomto příspěvku na blogu prozkoumáme nejlepší řešení pro generování dokumentů aplikace Word ze šablon pomocí různých typů zdrojů dat v Pythonu. Naučte se, jak využít předdefinované šablony ke generování dokumentů Wordu ve formátu DOCX vyplněním zástupných symbolů pomocí různých zdrojů dat, jako jsou XML, JSON nebo CSV.

Tento článek se zabývá následujícími tématy:

  1. Knihovna Python pro generování dokumentů Word ze šablon
  2. Vytvořte dokumenty Word ze šablony pomocí dat XML
  3. Generovat dokumenty Word ze šablony pomocí dat JSON
  4. Generovat dokumenty Word pomocí dat CSV v Pythonu
  5. Python LINQ Reporting Engine
  6. Bezplatné zdroje

Knihovna Python pro generování dokumentů aplikace Word ze šablon

Pro generování dokumentů Word ze šablon použijeme LINQ Reporting Engine z Aspose.Words for the Python API. Tento engine podporuje různé značky pro text, obrázky, seznamy, tabulky, hypertextové odkazy a záložky. Vyplňujeme dokumenty aplikace Word, které obsahují tyto značky, a plníme je daty ze zdrojů dat XML, JSON nebo CSV. Začněme tedy generovat dokumenty Wordu ze šablon pomocí Pythonu.

Instalace Aspose.Words for Python

Můžete stáhnout balíček nebo nainstalovat API z PyPI pomocí následujícího příkazu pip v konzole:

> pip install aspose-words

Vytvářejte dokumenty Word ze šablony pomocí dat XML v Pythonu

Pro generování dokumentu aplikace Word ze šablony pomocí zdroje dat XML potřebujeme soubor šablony a zdrojová data XML. Vytvoříme dokument Word (DOC/DOCX) s následujícími zástupnými symboly jako obsahem dokumentu šablony:

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

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

Zde je zdroj dat XML, který použijeme v tomto příkladu:

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

Nyní můžeme snadno vygenerovat dokument Word ze zdroje dat XML podle následujících kroků:

  1. Načtěte soubor šablony aplikace Word pomocí třídy Document.
  2. Vytvořte instanci třídy XmlDataSource a inicializujte ji pomocí cesty k souboru XML.
  3. Okamžitá třída ReportingEngine.
  4. Zavolejte metodu ReportingEngine.BuildReport() s názvem šablony, zdroje dat a zdroje dat.
  5. Uložte vygenerovaný dokument aplikace Word pomocí metody Document.Save().

Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word ze zdroje dat XML v Pythonu.

# Tento příklad kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony pomocí zdroje dat XML.
# Načtěte šablonu
doc = aw.Document("D:\\Files\\template.docx")

# Načtěte zdroj dat
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Inicializujte modul sestav
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Uložte dokument
doc.save("D:\\Files\\WordFromXML.docx")

Výstup

Generujte dokumenty Word ze šablony pomocí dat XML v Pythonu

Generujte dokumenty Word ze šablony pomocí dat JSON v Pythonu

Pro generování dokumentu aplikace Word pomocí zdroje dat JSON použijeme následující šablonu aplikace Word:

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

Následující by byl zdroj dat JSON, který použijeme k naplnění šablony:

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

Dokument Word můžeme snadno vygenerovat ze zdroje dat JSON podle výše uvedených kroků. Pro načtení a používání zdroje dat JSON v kroku 2 však použijeme třídu JsonDataSource.

Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony pomocí JSON v Pythonu.

# Tento příklad kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony pomocí zdroje dat JSON.
# Načtěte šablonu
doc = aw.Document("D:\\Files\\template-json.docx")

# Načtěte zdroj dat
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Inicializujte modul sestav
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Uložte dokument
doc.save("D:\\Files\\WordFromJSON.docx")

Výstup

Generujte dokumenty Word ze šablony pomocí dat JSON v Pythonu

Generujte dokumenty Word s daty CSV v Pythonu

Pro generování dokumentu aplikace Word z CSV použijeme následující šablonu aplikace Word:

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

Šablona bude vyplněna následujícími daty 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

Nyní můžeme vygenerovat dokument Word ze zdroje dat CSV podle výše uvedených kroků. Pro načtení a použití zdroje dat CSV v kroku 2 však použijeme třídu CsvDataSource.

Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word ze zdroje dat CSV v Pythonu.

# Tento příklad kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony pomocí zdroje dat JSON.
# Načtěte šablonu
doc = aw.Document("D:\\Files\\template-csv.docx")

# Načtěte zdroj dat
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Inicializujte modul sestav
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Uložte dokument
doc.save("D:\\Files\\WordFromCSV.docx")

Výstup

Generujte dokumenty Word s daty CSV v Pythonu

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a generovat dokumenty Word bez omezení hodnocení.

Python LINQ Reporting Engine – Přečtěte si více

LINQ Reporting Engine podporuje širokou škálu značek pro dynamické generování plně vybavených dokumentů Wordu v Pythonu. Více o těchto značkách spolu s jejich syntaxí si můžete přečíst v tomto článku.

Python Generování dokumentu Word ze šablony – zdroje zdarma

Kromě generování dokumentů aplikace Word ze šablon se dozvíte více o vytváření, manipulaci a převodu dokumentů aplikace Word a prozkoumejte různé další funkce knihovny pomocí zdrojů níže:

Závěr

V tomto článku jsme se naučili, jak generovat dokumenty Word ze šablon v Pythonu. Také jsme viděli, jak používat zdroje dat XML, JSON a CSV ke generování dokumentů aplikace Word. Využitím Aspose.Words for Python LINQ Reporting Engine můžete snadno generovat různé typy dokumentů Word. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Související články