关键词

教你使用Python根据模板批量生成docx文档

教你使用Python根据模板批量生成docx文档

简介

docx是Microsoft Word的文档格式,使用Python可以根据给定模板批量生成docx文档。本文将会介绍如何使用Python进行docx文件的自动化生成。

安装所需模块

在进行下一步之前,需要安装以下模块:

  • docx:处理docx文件格式的Python库。可通过这个链接进行安装。
pip install python-docx

示例1:生成单个docx文档

以下是通过Python生成模板化docx文档的步骤:

  1. 准备模板:新建一个docx文档并添加需要的内容和样式,保存为模板。
  2. 使用Python读取模板。
  3. 替换模板内容。
  4. 保存为新的docx文件。

下面是一个示例代码,假设我们的模板为template.docx:

from docx import Document
from docx.shared import Inches

# 打开模板文件
document = Document('template.docx')

# 遍历所有段落
for para in document.paragraphs:
    if '尊敬的客户' in para.text:
        # 将原文件的尊敬的客户替换为姓名为张三的客户。
        para.text = para.text.replace('尊敬的客户', '张三')

# 遍历所有表格
for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            if '123456' in cell.text:
                # 将原文件的123456替换为789012.
                cell.text = cell.text.replace('123456', '789012')

# 新建输出文件并保存
document.save('output.docx')

上面的代码将替换template.docx中的文本和表格数据,然后将结果保存到output.docx文件。

示例2:批量生成docx文档

以上文单个docx文档为基础,我们可以通过一个包含多个数据的列表或字典,批量生成多个docx文件。以下是一个示例代码,以字典列表为例:

from docx import Document

# 根据给定数据批量生成多个docx文档
def batch_generate_docs(data):
    for index, item in enumerate(data):
        # 打开模板文件
        document = Document('template.docx')

        # 遍历所有段落
        for para in document.paragraphs:
            for key in item.keys():
                if key in para.text:
                    # 用对应的值替换模板中的变量
                    para.text = para.text.replace(key, item[key])

        # 遍历所有表格
        for table in document.tables:
            for row in table.rows:
                for cell in row.cells:
                    for key in item.keys():
                        if key in cell.text:
                            # 用对应的值替换模板中的变量
                            cell.text = cell.text.replace(key, item[key])

        # 新建输出文件并保存
        document.save(f"output_{index}.docx")

# 准备数据
data = [
    {
        "name": "张三",
        "phone": "123456789",
        "email": "zhangsan@example.com"
    },
    {
        "name": "李四",
        "phone": "987654321",
        "email": "lisi@example.com"
    }
]

# 批量生成docx文档
batch_generate_docs(data)

上面的代码将根据给定数据,分别生成两个文档output_0.docxoutput_1.docx,并替换每个文档中的变量值。

结论

通过上述的示例,我们可以看到使用Python批量生成docx文档非常方便。只需准备好模板和数据,便可使用代码自动生成多个文档。

同样的方法也可以用于生成其他类型的文件,如PDF、HTML等。

本文链接:http://task.lmcjl.com/news/3441.html

展开阅读全文