本篇教程展示如何利用 Python,实现从 Excel 中提取稽查问题数据,并将对应图片按顺序插入到 Word 模板表格里,最终生成一份图文并茂的稽查报告。
目录
📝 Step 1:从 Excel 提取稽查问题数据
🖼 Step 2:读取并排序图片文件路径
🧩 Step 3:打开 Word 模板并添加表格行
🎯 Step 4:填充稽查内容与插入图片
💾 Step 5:保存最终文档
🖼️ 结果展示区
✨ 技术说明
✅ 小结
✅ 小结
📝 Step 1:从 Excel 提取稽查问题数据
from openpyxl import load_workbookwb = load_workbook('数据.xlsx')
ws = wb.active
data = []
for row in range(2, ws.max_row + 1):number = ws[f'A{row}'].valueproblem = ws[f'B{row}'].valueowner = ws[f'C{row}'].valuedata.append([number, problem, owner])
-
读取 Excel 中第二行及以下的数据,生成
data
列表; -
包含三列:序号、问题描述、责任人。
🖼 Step 2:读取并排序图片文件路径
import ospath = "6s_pictures"
list_p = [os.path.join(path, fname) for fname in os.listdir(path)]
list_p.sort(key=os.path.getmtime)
-
使用
os.path.getmtime()
对图片按修改时间排序,确保与data
行对应; -
使用
os.path.join()
拼接跨平台路径。
🧩 Step 3:打开 Word 模板并添加表格行
from docx import Document
from docx.shared import Cmdoc = Document("6S稽查问题模板.docx")
table = doc.tables[0]# 增加剩余行,保证行数与 data 一致
for _ in range(len(data) - 1):table.add_row()
-
使用
python-docx
打开模板; -
.add_row()
新增空行,为数据填充准备空间。
🎯 Step 4:填充稽查内容与插入图片
for i, row in enumerate(range(1, len(data) + 1)):table.cell(row, 0).text = str(data[i][0])table.cell(row, 1).text = data[i][1]table.cell(row, 3).text = data[i][2]run = table.cell(row, 2).paragraphs[0].add_run()pic = run.add_picture(list_p[i], width=Cm(6.2), height=Cm(4.4))
-
逐行填充 Excel 的数据;
-
在图像列插入图片,并设置尺寸适配表格;
-
python-docx
支持add_picture(height, width)
设置图像大小 ironsoftware.com+2python-docx.readthedocs.io+2medium.com+2。
💾 Step 5:保存最终文档
doc.save("6S稽查问题.docx")
-
将填充好数据与图片的模板另存为新文档。
🖼️ 结果展示区
✨ 技术说明
-
利用
os.path.getmtime()
排序图片,确保与 Excel 中的行一一对应; -
add_picture()
可设置图像尺寸,帮助图片自适应表格 ; -
插图可根据
CVM
参数调整大小以适应排版; -
可扩展功能包括:自动合并空白行、边框样式美化、条件格式设置等。
✅ 小结
本文展示了如何组合 openpyxl
与 python-docx
实现:
-
从 Excel 📥 提取稽查问题数据;
-
自动读取并按顺序插入图片 📸;
-
一键生成美观的 Word 模板报告 ✅。
更多实用案例,代码,素材如下:
自取链接:https://pan.quark.cn/s/a46f30accea2
下一步可继续扩展,比如“自动合并单元格并总结统计”、“设置表格边框和背景样式”等功能。如有兴趣我可以继续帮你完善这套自动化工具!