Python 從範本產生 Word 文檔

您是否正在尋找從範本建立 Word 文件的方法?您來對地方了!在這篇文章中,我們將探索在 Python 中使用不同類型的資料來源從範本產生 Word 文件的最佳解決方案。了解如何利用預定義範本透過使用各種資料來源(例如XMLJSONCSV)填入佔位符來產生DOCX 格式的Word文件.

本文涵蓋以下主題:

  1. 從範本產生Word文件的Python庫
  2. 使用 XML 資料從範本建立 Word 文件
  3. 使用 JSON 資料從範本產生 Word 文件
  4. 在Python中使用CSV資料產生Word文檔
  5. Python LINQ 報告引擎
  6. 免費資源

從範本產生 Word 文件的 Python 庫

我們將使用 Aspose.Words for the Python API 的 LINQ Reporting Engine 從範本產生 Word 文件。此引擎支援文字、圖像、清單、表格、超連結和書籤的不同標籤。我們填充具有這些標籤的 Word 文檔,並使用來自 XML、JSON 或 CSV 資料來源的資料填充它們。那麼讓我們開始使用 Python 從範本產生 Word 文件。

安裝 Aspose.Words for Python

您可以在控制台中使用下列 pip 命令下載軟體包從 PyPI 安裝 API

> pip install aspose-words

在 Python 中使用 XML 資料從模板建立 Word 文檔

為了使用 XML 資料來源從範本產生 Word 文檔,我們需要範本文件和 XML 來源資料。我們將使用下列佔位符建立一個 Word 文件 (DOC/DOCX) 作為範本文件的內容:

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

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

以下是我們將在本範例中使用的 XML 資料來源:

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

現在,我們可以按照以下步驟輕鬆地從 XML 資料來源產生 Word 文件:

  1. 使用 Document 類別載入 Word 範本檔案。
  2. 建立 XmlDataSource 類別的實例並使用 XML 檔案的路徑對其進行初始化。
  3. 實例化 ReportingEngine 類別。
  4. 使用範本、資料來源和資料來源名稱呼叫 ReportingEngine.BuildReport() 方法。
  5. 使用 Document.Save() 方法儲存產生的 Word 文件。

以下程式碼範例示範如何使用 Python 從 XML 資料來源產生 Word 文件。

# 此程式碼範例示範如何使用 XML 資料來源從範本產生 Word 文件。
# 載入模板
doc = aw.Document("D:\\Files\\template.docx")

# 載入資料來源
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")

# 初始化報告引擎
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# 儲存文件
doc.save("D:\\Files\\WordFromXML.docx")

輸出

在 Python 中使用 XML 資料從模板產生 Word 文檔

在 Python 中使用 JSON 資料從範本產生 Word 文檔

為了使用 JSON 資料來源產生 Word 文檔,我們將使用以下 Word 範本:

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

以下是我們將用於填入範本的 JSON 資料來源:

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

按照前面提到的步驟,我們可以輕鬆地從 JSON 資料來源產生 Word 文件。但是,我們將在步驟 2 中使用 JsonDataSource 類別來載入和使用 JSON 資料來源。

以下程式碼範例展示如何在 Python 中使用 JSON 從範本產生 Word 文件。

# 此程式碼範例示範如何使用 JSON 資料來源從範本產生 Word 文件。
# 載入模板
doc = aw.Document("D:\\Files\\template-json.docx")

# 載入資料來源
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")

# 初始化報告引擎
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");

# 儲存文件
doc.save("D:\\Files\\WordFromJSON.docx")

輸出

在 Python 中使用 JSON 資料從範本產生 Word 文檔

在 Python 中使用 CSV 資料產生 Word 文檔

為了從 CSV 產生 Word 文檔,我們將使用以下 Word 範本:

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

此範本將填入以下 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

現在,我們可以按照前面提到的步驟從 CSV 資料來源產生 Word 文件。但是,我們將在步驟 2 中使用 CsvDataSource 類別來載入和使用 CSV 資料來源。

以下程式碼範例示範如何使用 Python 從 CSV 資料來源產生 Word 文件。

# 此程式碼範例示範如何使用 JSON 資料來源從範本產生 Word 文件。
# 載入模板
doc = aw.Document("D:\\Files\\template-csv.docx")

# 載入資料來源
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")

# 初始化報告引擎
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");

# 儲存文件
doc.save("D:\\Files\\WordFromCSV.docx")

輸出

在 Python 中使用 CSV 資料產生 Word 文檔

取得免費許可證

您可以獲得免費的臨時許可證並產生沒有評估限制的 Word 文件。

Python LINQ 報告引擎 - 了解更多

LINQ 報告引擎支援多種標籤,可在 Python 中動態產生功能齊全的 Word 文件。您可以在本文中閱讀有關這些標籤及其語法的更多資訊。

Python 從範本產生 Word 文件 – 免費資源

除了從模板生成 Word 文件之外,您還可以了解有關創建、操作和轉換 Word 文件的更多信息,並使用以下資源探索該庫的各種其他功能:

結論

在本文中,我們學習如何使用 Python 從範本產生 Word 文件。我們也了解如何使用 XML、JSON 和 CSV 資料來源產生 Word 文件。透過利用 Aspose.Words for Python LINQ 報告引擎,您可以輕鬆產生各種類型的 Word 文件。如有任何疑問,請隨時透過我們的免費支援論壇與我們聯繫。

相關文章