个人中心

联系我们

搜索
搜索 登录 免费注册
界面美化
业务优化
开发工具
图像管理
文档管理
Parasoft

新闻资讯

关注工具软件产品最新动态,了解软件开发行业新趋势。

Aspose 使用教程:用 Python 从模板动态生成 Word 文档

原创
软件开发
来源:Aspose
Aspose
python
word
Microsoft
office
API
XML
2024-04-17
Aspose
python
word
Microsoft
office
API
XML


您是否正在寻找一种从模板创建 Word 文档的方法?您来对地方了!在本文中,我们将探讨使用 Python 中不同类型的数据源从模板生成 Word 文档的最佳解决方案。了解如何利用预定义模板,通过使用各种数据源(如 XML、JSON 或 CSV)填充占位符来生成 DOCX 格式的 Word 文档。


本文涵盖以下主题:


  • 从模板生成 Word 文档的 Python 库

  • 使用 XML 数据从模板创建 Word 文档

  • 使用 JSON 数据从模板生成 Word 文档

  • 在 Python 中使用 CSV 数据生成 Word 文档

  • Python LINQ 报告引擎


从模板生成 Word 文档的 Python 库

我们将在 Python API 中使用 Aspose.Words 的 LINQ 报告引擎,以便从模板生成 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 文档。

# This code example demonstrates how to generate a Word document from a Template using XML data source.
# Load the template
doc = aw.Document("D:\\Files\\template.docx")
# Load the data source
data_source = aw.reporting.XmlDataSource("D:\\Files\\data-source.xml")
# Initialize reporting engine
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");
# Save the document
doc.save("D:\\Files\\WordFromXML.docx")


输出



使用 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 文档。

# This code example demonstrates how to generate a Word document from a Template using JSON data source.
# Load the template
doc = aw.Document("D:\\Files\\template-json.docx")
# Load the data source
data_source = aw.reporting.JsonDataSource("D:\\Files\\data-source.json")
# Initialize reporting engine
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "managers");
# Save the document
doc.save("D:\\Files\\WordFromJSON.docx")


输出



用 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 数据填充:

Search this file…
John Doe301989-04-01 4:00:00 pm
Jane Doe271992-01-31 07:00:00 am
John Smith511968-03-08 1:00:00 pm

现在,我们可以按照前面提到的步骤从 CSV 数据源生成 Word 文档。不过,我们将在第 2 步中使用 CsvDataSource 类加载和使用 CSV 数据源。


下面的代码示例展示了如何用 Python 从 CSV 数据源生成 Word 文档。

# This code example demonstrates how to generate a Word document from a Template using JSON data source.
# Load the template
doc = aw.Document("D:\\Files\\template-csv.docx")
# Load the data source
data_source = aw.reporting.CsvDataSource("D:\\Files\\data-source.csv")
# Initialize reporting engine
engine = aw.reporting.ReportingEngine()
engine.build_report(doc, data_source, "persons");
# Save the document
doc.save("D:\\Files\\WordFromCSV.docx")


输出



获取免费许可证

您可以获得免费的临时许可证,并生成无评估限制的 Word 文档。


Python LINQ Reporting Engine - 了解更多

LINQ Reporting Engine 支持多种标签,可用于在 Python 中动态生成功能齐全的 Word 文档。


结论

在本文中,我们学习了如何用 Python 从模板生成 Word 文档。我们还了解了如何使用 XML、JSON 和 CSV 数据源生成 Word 文档。通过利用 Aspose.Words for Python LINQ Reporting Engine,您可以轻松生成各种类型的 Word 文档。如果有任何不清楚的地方,请随时联系我们


联系我们

周一至周日 8:00-23:00

免费热线

023-62585653

张经理:13082556879

罗经理:17558866126

许经理:13057566525

开发外包

ERP-一体化

小程序

企业微信客服

版权所有:重庆庚乾信息科技有限公司 ©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508

版权所有:重庆庚乾信息科技有限公司

©2025 Gengqian Information Technology Co., Ltd. 渝ICP备2022008063号-2 渝公网安备50010702505508