您是否正在寻找从模板创建 Word 文档的方法?您来对地方了!在这篇博文中,我们将探索在 Python 中使用不同类型的数据源从模板生成 Word 文档的最佳解决方案。了解如何利用预定义模板通过使用各种数据源(例如 XML、JSON 或 CSV)填充占位符来生成 DOCX 格式的 Word 文档。
本文涵盖以下主题:
- 从模板生成Word文档的Python库
- 使用 XML 数据从模板创建 Word 文档
- 使用 JSON 数据从模板生成 Word 文档
- 在Python中使用CSV数据生成Word文档
- Python LINQ 报告引擎
- 免费资源
从模板生成 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 文档:
- 使用 Document 类加载 Word 模板文件。
- 创建 XmlDataSource 类的实例并使用 XML 文件的路径对其进行初始化。
- 实例化 ReportingEngine 类。
- 使用模板、数据源和数据源名称调用 ReportingEngine.BuildReport() 方法。
- 使用 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 中使用 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 中使用 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")
输出
获取免费许可证
您可以获得免费的临时许可证并生成没有评估限制的 Word 文档。
Python LINQ 报告引擎 - 了解更多
LINQ 报告引擎支持多种标签,可在 Python 中动态生成功能齐全的 Word 文档。您可以在本文中阅读有关这些标签及其语法的更多信息。
Python 从模板生成 Word 文档 – 免费资源
除了从模板生成 Word 文档之外,您还可以了解有关创建、操作和转换 Word 文档的更多信息,并使用以下资源探索该库的各种其他功能:
结论
在本文中,我们学习了如何使用 Python 从模板生成 Word 文档。我们还了解了如何使用 XML、JSON 和 CSV 数据源生成 Word 文档。通过利用 Aspose.Words for Python LINQ 报告引擎,您可以轻松生成各种类型的 Word 文档。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。