Python generuje dokument Word z szablonu

Szukasz sposobu na tworzenie dokumentów Word z szablonów? Trafiłeś we właściwe miejsce! W tym poście na blogu omówimy najlepsze rozwiązanie do generowania dokumentów programu Word na podstawie szablonów przy użyciu różnych typów źródeł danych w języku Python. Dowiedz się, jak wykorzystać predefiniowane szablony do generowania dokumentów programu Word w formacie DOCX, wypełniając symbole zastępcze przy użyciu różnych źródeł danych, takich jak XML, JSON lub CSV.

W tym artykule poruszono następujące tematy:

  1. Biblioteka Python do generowania dokumentów Word z szablonów
  2. Twórz dokumenty Word z szablonu przy użyciu danych XML
  3. Generuj dokumenty Word z szablonu przy użyciu danych JSON
  4. Generuj dokumenty Word z danymi CSV w Python
  5. Silnik raportowania Python LINQ
  6. Darmowe zasoby

Biblioteka Python do generowania dokumentów Word z szablonów

Będziemy używać LINQ Reporting Engine z Aspose.Words for the Python API do generowania dokumentów Word z szablonów. Ten silnik obsługuje różne tagi dla tekstu, obrazów, list, tabel, hiperłączy i zakładek. Wypełniamy dokumenty programu Word zawierające te znaczniki i wypełniamy je danymi ze źródeł danych XML, JSON lub CSV. Zacznijmy więc generować dokumenty Worda na podstawie szablonów przy użyciu Python.

Instalowanie Aspose.Words for Python

Możesz pobrać pakiet lub zainstalować API z PyPI, używając następującego polecenia pip w konsoli:

> pip install aspose-words

Twórz dokumenty programu Word na podstawie szablonu przy użyciu danych XML w języku Python

Do wygenerowania dokumentu Word z szablonu przy użyciu źródła danych XML potrzebujemy pliku szablonu i danych źródłowych XML. Utworzymy dokument programu Word (DOC/DOCX) z następującymi symbolami zastępczymi jako zawartością dokumentu szablonu:

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

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

Oto źródło danych XML, którego użyjemy w tym przykładzie:

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

Teraz możemy łatwo wygenerować dokument Word ze źródła danych XML, wykonując poniższe kroki:

  1. Załaduj plik szablonu programu Word przy użyciu klasy Document.
  2. Utwórz instancję klasy XmlDataSource i zainicjuj ją ścieżką pliku XML.
  3. Utwórz instancję klasy ReportingEngine.
  4. Wywołaj metodę ReportingEngine.BuildReport() z szablonem, źródłem danych i nazwą źródła danych.
  5. Zapisz wygenerowany dokument Worda za pomocą metody Document.Save().

Poniższy przykładowy kod pokazuje, jak wygenerować dokument programu Word ze źródła danych XML w języku Python.

# Ten przykład kodu demonstruje, jak wygenerować dokument programu Word na podstawie szablonu przy użyciu źródła danych XML.
# Załaduj szablon
doc = aw.Document("D:\\Files\\template.docx")

# Załaduj źródło danych
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Zainicjuj silnik raportowania
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Zapisz dokument
doc.save("D:\\Files\\WordFromXML.docx")

Wyjście

Generuj dokumenty Word z szablonu przy użyciu danych XML w Python

Generuj dokumenty Word z szablonu przy użyciu danych JSON w Python

Do generowania dokumentu Word przy użyciu źródła danych JSON użyjemy następującego szablonu Word:

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

Poniżej znajduje się źródło danych JSON, którego użyjemy do wypełnienia szablonu:

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

Możemy łatwo wygenerować dokument Word ze źródła danych JSON, wykonując kroki wspomniane wcześniej. Do ładowania i używania źródła danych JSON w kroku 2 użyjemy jednak klasy JsonDataSource.

Poniższy przykładowy kod pokazuje, jak wygenerować dokument programu Word na podstawie szablonu przy użyciu formatu JSON w języku Python.

# Ten przykład kodu demonstruje, jak wygenerować dokument programu Word na podstawie szablonu przy użyciu źródła danych JSON.
# Załaduj szablon
doc = aw.Document("D:\\Files\\template-json.docx")

# Załaduj źródło danych
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Zainicjuj silnik raportowania
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Zapisz dokument
doc.save("D:\\Files\\WordFromJSON.docx")

Wyjście

Generuj dokumenty Word z szablonu przy użyciu danych JSON w Python

Generuj dokumenty Word z danymi CSV w Python

Do wygenerowania dokumentu Word z pliku CSV użyjemy następującego szablonu Word:

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

Szablon zostanie wypełniony następującymi danymi 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

Teraz możemy wygenerować dokument Word ze źródła danych CSV, wykonując kroki wspomniane wcześniej. Do ładowania i używania źródła danych CSV w kroku 2 użyjemy jednak klasy CsvDataSource.

Poniższy przykładowy kod pokazuje, jak wygenerować dokument programu Word ze źródła danych CSV w języku Python.

# Ten przykład kodu demonstruje, jak wygenerować dokument programu Word na podstawie szablonu przy użyciu źródła danych JSON.
# Załaduj szablon
doc = aw.Document("D:\\Files\\template-csv.docx")

# Załaduj źródło danych
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Zainicjuj silnik raportowania
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Zapisz dokument
doc.save("D:\\Files\\WordFromCSV.docx")

Wyjście

Generuj dokumenty Word z danymi CSV w Python

Zdobądź bezpłatną licencję

Możesz [uzyskać bezpłatną licencję tymczasową] i generować dokumenty Word bez ograniczeń ewaluacyjnych.

Silnik raportowania Python LINQ — czytaj więcej

Silnik raportowania LINQ obsługuje szeroką gamę tagów do dynamicznego generowania w pełni funkcjonalnych dokumentów programu Word w języku Python. Więcej o tych tagach wraz z ich składnią możesz przeczytać w tym artykule.

Python Generuj dokument Word z szablonu – bezpłatne zasoby

Oprócz generowania dokumentów programu Word na podstawie szablonów, dowiedz się więcej o tworzeniu, manipulowaniu i konwertowaniu dokumentów programu Word oraz poznaj różne inne funkcje biblioteki, korzystając z poniższych zasobów:

Wniosek

W tym artykule dowiedzieliśmy się, jak generować dokumenty Word z szablonów w Python. Widzieliśmy także, jak używać źródeł danych XML, JSON i CSV do generowania dokumentów Word. Wykorzystując Aspose.Words for Python LINQ Reporting Engine, możesz łatwo generować różne typy dokumentów Word. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.

Powiązane artykuły