【小白必看】利用Python生成个性化名单Word文档

在这里插入图片描述

前言

对于需要批量生成个性化名单的任务,使用Python可以很方便地完成。本文介绍了如何使用Python的openpyxl和docxtpl库,从Excel表格中获取数据,并根据指定的Word模板生成相应的个性化名单文档。通过学习这个示例,您可以了解到Python在处理办公自动化任务中的强大能力。

所需文件及文件格式说明

excel数据如下

在这里插入图片描述

word 模板如下

在这里插入图片描述

文件目录格式及生成后的文件

在这里插入图片描述

导入所需的模块:

在这里插入图片描述

import openpyxl
from docxtpl import DocxTemplate

这里导入了两个模块。openpyxl 用于操作 Excel 文件,DocxTemplate 是一个用于生成 Word 文档的模板类。

打开 Excel 文件:

在这里插入图片描述

excel = openpyxl.load_workbook('名单.xlsx')

使用 openpyxl 模块的 load_workbook 函数打开名为 ‘名单.xlsx’ 的 Excel 文件,并将返回的工作簿对象赋值给变量 excel

选择工作表:

在这里插入图片描述

sheet = excel.worksheets[0]

通过 excel.worksheets 属性选择第一个工作表,并将其赋值给变量 sheet

获取数据列表:

names = []
works = []
for row in sheet.iter_rows(min_row=1, values_only=True):
    names.append(row[1])
    works.append(row[2])

使用 iter_rows 方法遍历工作表的每一行,并使用 values_only=True 参数以只获取单元格的值,然后将第二列的数据添加到 names 列表中,将第三列的数据添加到 works 列表中。

遍历数据并生成 Word 文档:

for na, wo in zip(names, works):
    print(na, '----', wo)
    doc = DocxTemplate('template.docx')
    context = {'name': na, 'work': wo}
    doc.render(context)
    doc.save(f'{na}.docx')
    print(f'{na}的word-生成完毕!!')

使用 zip 函数将 namesworks 列表的元素一一对应,然后通过 for 循环遍历每个人名和工作。

在循环中,首先打印出人名和工作,然后通过 DocxTemplate 类打开名为 ‘template.docx’ 的模板文件,使用 context 字典定义要替换的内容,namework 分别表示模板中的标记和要替换的值。接着,调用 render 方法填充模板内容,再使用 save 方法将生成的文档保存为以人名命名的 Word 文件。最后,打印出生成完成的提示信息。

完整代码

import openpyxl
from docxtpl import DocxTemplate

# 导入所需的模块

# 打开excel
excel = openpyxl.load_workbook('名单.xlsx')
# 选择工作薄-选择第一个
sheet = excel.worksheets[0]
# 获取工作薄有多少数据
names = []
works = []
for row in sheet.iter_rows(min_row=1, values_only=True):
    # 将姓名和职位添加到对应的列表中
    names.append(row[1])
    works.append(row[2])

# 遍历数据并生成Word文档
for na, wo in zip(names, works):
    print(na, '----', wo)
    # 打开模板
    doc = DocxTemplate('template.docx')
    # 设置内容对应关系
    context = {'name': na, 'work': wo}
    # 填充内容
    doc.render(context)
    # 保存新的文件,文件名为姓名
    doc.save(f'{na}.docx')
    # 友好提示
    print(f'{na}的word-生成完毕!!')

结束语

通过本文的介绍,相信您已经了解了如何使用Python生成个性化名单Word文档的方法。借助openpyxl和docxtpl库,我们可以轻松处理Excel表格中的数据,并根据指定的模板生成个性化的文档。这种方法不仅节省时间,还可以提高工作效率,尤其适用于需要大量生成名单或报告的场景。希望本文对您有所帮助,鼓励您在实际应用中灵活运用Python,享受自动化带来的便利与效益。祝愿您在编程的道路上越走越远,不断探索新的可能性!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈若城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值