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:
- Biblioteka Python do generowania dokumentów Word z szablonów
- Twórz dokumenty Word z szablonu przy użyciu danych XML
- Generuj dokumenty Word z szablonu przy użyciu danych JSON
- Generuj dokumenty Word z danymi CSV w Python
- Silnik raportowania Python LINQ
- 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:
- Załaduj plik szablonu programu Word przy użyciu klasy Document.
- Utwórz instancję klasy XmlDataSource i zainicjuj ją ścieżką pliku XML.
- Utwórz instancję klasy ReportingEngine.
- Wywołaj metodę ReportingEngine.BuildReport() z szablonem, źródłem danych i nazwą źródła danych.
- 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 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 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
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:
- Przewodnik programisty
- Darmowe aplikacje internetowe
- Odniesienie do API
- Poradniki i artykuły z instrukcjami
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.