Python Generera Word-dokument från mall

Letar du efter ett sätt att skapa Word-dokument från mallar? Du har kommit till rätt ställe! I det här blogginlägget kommer vi att utforska den bästa lösningen för att generera Word-dokument från mallar med olika typer av datakällor i Python. Lär dig hur du använder fördefinierade mallar för att generera Word-dokument i DOCX-format genom att fylla i platshållare med hjälp av olika datakällor, som XML, JSON eller CSV.

Den här artikeln tar upp följande ämnen:

  1. Python-bibliotek för att generera Word-dokument från mallar
  2. Skapa Word-dokument från mall med hjälp av XML-data
  3. Generera Word-dokument från mall med JSON-data
  4. Generera Word-dokument med CSV-data i Python
  5. Python LINQ Reporting Engine
  6. Gratis resurser

Python-bibliotek för att generera Word-dokument från mallar

Vi kommer att använda LINQ Reporting Engine i Aspose.Words for Python API för att generera Word-dokument från mallar. Denna motor stöder olika taggar för text, bilder, listor, tabeller, hyperlänkar och bokmärken. Vi fyller i Word-dokument som innehåller dessa taggar och fyller dem med data från XML-, JSON- eller CSV-datakällor. Så låt oss börja generera Word-dokument från mallarna med Python.

Installerar Aspose.Words för Python

Du kan ladda ner paketet eller installera API från PyPI med följande pip-kommando i konsolen:

> pip install aspose-words

Skapa Word-dokument från mall med XML-data i Python

För att generera Word-dokumentet från en mall med hjälp av XML-datakällan behöver vi en mallfil och XML-källdata. Vi skapar ett Word-dokument (DOC/DOCX) med följande platshållare som innehåll i malldokumentet:

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

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

Här är XML-datakällan som vi kommer att använda i det här exemplet:

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

Nu kan vi enkelt generera ett Word-dokument från en XML-datakälla genom att följa stegen nedan:

  1. Ladda Word-mallfilen med hjälp av klassen Document.
  2. Skapa en instans av klassen XmlDataSource och initiera den med XML-filens sökväg.
  3. Instantiera ReportingEngine-klassen.
  4. Anropa metoden ReportingEngine.BuildReport() med mallen, datakällan och datakällans namn.
  5. Spara det genererade Word-dokumentet med metoden Document.Save().

Följande kodexempel visar hur man genererar ett Word-dokument från en XML-datakälla i Python.

# Detta kodexempel visar hur man genererar ett Word-dokument från en mall med hjälp av XML-datakälla.
# Ladda mallen
doc = aw.Document("D:\\Files\\template.docx")

# Ladda datakällan
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# Initiera rapporteringsmotorn
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Spara dokumentet
doc.save("D:\\Files\\WordFromXML.docx")

Produktion

Generera Word-dokument från mall med XML-data i Python

Generera Word-dokument från mall med JSON-data i Python

För att skapa ett Word-dokument med en JSON-datakälla använder vi följande Word-mall:

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

Följande skulle vara JSON-datakällan som vi kommer att använda för att fylla i mallen:

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

Vi kan enkelt generera Word-dokumentet från en JSON-datakälla genom att följa stegen som nämnts tidigare. Vi kommer dock att använda klassen JsonDataSource för att ladda och använda JSON-datakällan i steg 2.

Följande kodexempel visar hur man genererar ett Word-dokument från mallen med JSON i Python.

# Det här kodexemplet visar hur man genererar ett Word-dokument från en mall med JSON-datakälla.
# Ladda mallen
doc = aw.Document("D:\\Files\\template-json.docx")

# Ladda datakällan
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# Initiera rapporteringsmotorn
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# Spara dokumentet
doc.save("D:\\Files\\WordFromJSON.docx")

Produktion

Generera Word-dokument från mall med JSON-data i Python

Generera Word-dokument med CSV-data i Python

För att skapa Word-dokumentet från CSV använder vi följande Word-mall:

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

Mallen kommer att fyllas i med följande CSV-data:

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

Nu kan vi generera Word-dokumentet från CSV-datakällan genom att följa stegen som nämnts tidigare. Vi kommer dock att använda klassen CsvDataSource för att ladda och använda CSV-datakällan i steg 2.

Följande kodexempel visar hur man genererar ett Word-dokument från en CSV-datakälla i Python.

# Det här kodexemplet visar hur man genererar ett Word-dokument från en mall med JSON-datakälla.
# Ladda mallen
doc = aw.Document("D:\\Files\\template-csv.docx")

# Ladda datakällan
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# Initiera rapporteringsmotorn
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# Spara dokumentet
doc.save("D:\\Files\\WordFromCSV.docx")

Produktion

Generera Word-dokument med CSV-data i Python

Skaffa en gratis licens

Du kan få en gratis tillfällig licens och generera Word-dokument utan utvärderingsbegränsningar.

Python LINQ Reporting Engine - Läs mer

LINQ Reporting Engine stöder ett brett utbud av taggar för att generera fullfjädrade Word-dokument dynamiskt i Python. Du kan läsa mer om dessa taggar, tillsammans med deras syntax, i denna artikel.

Python Generera Word-dokument från mall – Gratis resurser

Förutom att skapa Word-dokument från mallar kan du lära dig mer om att skapa, manipulera och konvertera Word-dokument och utforska olika andra funktioner i biblioteket med hjälp av resurserna nedan:

Slutsats

I den här artikeln har vi lärt oss hur man genererar Word-dokument från mallar i Python. Vi har också sett hur man använder XML-, JSON- och CSV-datakällor för att generera Word-dokument. Genom att utnyttja Aspose.Words för Python LINQ Reporting Engine kan du enkelt generera olika typer av Word-dokument. I händelse av oklarheter är du välkommen att kontakta oss på vårt gratis supportforum.

relaterade artiklar