当前位置: 首页 > news >正文

[特殊字符] Excel 提取+图片批量插入 | Python 自动化生成稽查报告 Word 模板

本篇教程展示如何利用 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 参数调整大小以适应排版;

  • 可扩展功能包括:自动合并空白行、边框样式美化、条件格式设置等。


 

✅ 小结

本文展示了如何组合 openpyxlpython-docx 实现:

  • 从 Excel 📥 提取稽查问题数据;

  • 自动读取并按顺序插入图片 📸;

  • 一键生成美观的 Word 模板报告 ✅。

  更多实用案例,代码,素材如下:

自取链接:夸克网盘分享

下一步可继续扩展,比如“自动合并单元格并总结统计”、“设置表格边框和背景样式”等功能。如有兴趣我可以继续帮你完善这套自动化工具!

 

 

 

 

 

 

 

 

http://www.dtcms.com/a/264682.html

相关文章:

  • ubuntu 22.04 LTS 安装preempt-rt
  • pytorch底层原理学习--JIT与torchscript
  • 开机自动后台运行,在Windows服务中托管ASP.NET Core
  • 企业培训笔记:SpringBoot+MyBatis项目中实现分页查询
  • GraphPrompts:图神经网络领域的提示工程范式革新者
  • 学习笔记(28):随机噪声的原理、作用及代码实现详解
  • CC - Link IE转EtherCAT:石油石化软启动器的“最佳搭子”
  • 电商项目实例:基于Python京东商品API接口数据采集
  • 跨越传统界限:ChatGPT+ENVI/Python/GEE集成实战,覆盖无人机遥感、深度学习、洪水监测、矿物识别填图、土壤含水量评估等
  • 【Web前端】优化轮播图展示(源代码)
  • MDK(Keil MDK)工具链
  • cmake find_package
  • C++ 创建动态库及两种方法调用动态库
  • DINO 浅析
  • 医学+AI教育实践!南医大探索数据挖掘人才培养,清华指导发布AI教育白皮书
  • HarmonyOS应用开发高级认证知识点梳理 (四)状态管理V2应用级状态
  • AutoGen-AgentChat-1-整体了解
  • NestJS 系列教程(一):认识 NestJS 与项目初始化
  • RabbitMQ 高级特性之持久性
  • OpenCV仿射变换详解
  • 【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
  • 红海云签约东莞科创金融集团,科创金融行业人力资源数字化
  • 论文阅读笔记——VGGT: Visual Geometry Grounded Transformer
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ButtonRippleEffect(按钮涟漪效果)
  • 基于[coze][dify]搭建一个智能体工作流,使用第三方插件抓取热门视频数据,自动存入在线表格
  • Node.js-http模块
  • mac Maven配置报错The JAVA_HOME environment variable is not defined correctly的解决方法
  • 21、企业行政办公(OA)数字化转型:系统如何重塑企业高效运营新范式
  • Android Native 之 inputflinger进程分析
  • 硬件选型与组网规划S7-300以太网模块适配性与网络架构搭建