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

简介: 【小白必看】利用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,享受自动化带来的便利与效益。祝愿您在编程的道路上越走越远,不断探索新的可能性!

相关文章
|
9月前
|
XML 数据格式 Python
从手动编辑到代码生成:Python 助你高效创建 Word 文档
本文介绍如何用Python实现Word文档自动化生成,结合python-docx、openpyxl和matplotlib库,高效完成报告撰写、数据插入与图表生成,大幅提升办公效率,降低格式错误,实现数据驱动的文档管理。
1234 2
|
11月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
581 0
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
481 1
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
320 1
|
XML Linux 区块链
Python提取Word表格数据教程(含.doc/.docx)
本文介绍了使用LibreOffice和python-docx库处理DOC文档表格的方法。首先需安装LibreOffice进行DOC到DOCX的格式转换,然后通过python-docx读取和修改表格数据。文中提供了详细的代码示例,包括格式转换函数、表格读取函数以及修改保存功能。该方法适用于Windows和Linux系统,解决了老旧DOC格式文档的处理难题,为需要处理历史文档的用户提供了实用解决方案。
1424 1
|
Python
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
2851 1
|
11月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
2212 0
|
搜索推荐 索引 Python
使用Python批量生成个性化奖状
本文介绍了如何使用Python结合Pandas和python-pptx库,根据Excel数据表自动批量生成个性化PowerPoint格式的奖状文件,详细步骤包括导入库、读取数据、替换模板占位符及保存文件,有效提升工作效率。
711 64
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
933 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
363 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图

推荐镜像

更多