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

相关文章
|
1月前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
42 1
|
1月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
28 1
|
1月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
52 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
1月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
42 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
1月前
|
人工智能 开发者 Python
python读取word文档 | AI应用开发
在RAG系统中,构建知识库时需读取多种外部文档,其中Word文档较为常见。本文介绍如何使用`python-docx`库读取Word文档(.docx格式)中的标题、段落、表格和图片等内容。首先通过`pip install python-docx`安装库,然后利用提供的接口提取所需信息。尽管该库功能强大,但在识别标题样式时需自定义逻辑,并且仅提供图片的URI而非直接加载。示例代码展示了读取文本、识别标题、读取表格及获取图片URI的方法。【10月更文挑战第2天】
80 2
|
2月前
|
存储 数据采集 关系型数据库
Python之文档数据存储
Python之文档数据存储
|
1月前
|
IDE 开发工具 Python
Python自动化操作word--批量替换word文档中的文字
Python自动化操作word--批量替换word文档中的文字
|
3月前
|
JSON 测试技术 API
Python开发解析Swagger文档小工具
文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。
80 1
Python开发解析Swagger文档小工具
|
3月前
|
自然语言处理 搜索推荐 算法
深入浅出:用Python打造个性化新闻聚合器
【8月更文挑战第29天】在信息爆炸的时代,快速获取和筛选感兴趣的新闻内容成为一项挑战。本文将引导你使用Python构建一个简单的个性化新闻聚合器,从而高效地从海量信息中提取价值。通过学习本文,你将能够实现一个基本的爬虫,利用推荐算法为用户定制新闻流,并了解如何部署和维护这样一个系统。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将成为你技术成长路径上的一块垫脚石。
|
3月前
|
搜索推荐 API 数据处理
Python魔法:打造个性化天气查询工具
【8月更文挑战第31天】 在这篇文章中,我们将一起探索如何用Python构建一个个性化的天气查询工具。不同于传统的技术文章,我们将通过一个简单的故事引入主题,让读者感受到编程的乐趣和实用性。文章将介绍如何使用API获取数据,处理这些数据,并以用户友好的方式展示信息。无论你是编程新手还是想扩展你的项目库,这篇文章都会给你提供有价值的见解和代码示例。
下一篇
无影云桌面