当前位置: 首页 > 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.lryc.cn/news/578830.html

相关文章:

  • 基于Java+SpringBoot的图书管理系统
  • 多云密钥统一管理实战:CKMS对接阿里云/华为云密钥服务
  • 分布式定时任务:Elastic-Job-Lite
  • GC393低功耗双电压比较器:精准、高效的信号处理解决方案
  • Axure版ArcoDesign 组件库-免费版
  • OpenCV CUDA模块设备层-----高效地计算两个uint 类型值的平均值函数vavg2()
  • Centos系统及国产麒麟系统设置自己写的go服务的开机启动项完整教程
  • 开源 | V3.1.1慧知开源重卡运营充电桩平台 - 重卡运营充电桩平台管理解决方案;企业级完整代码 多租户、模拟器、多运营商、多小程序;
  • Chrome 下载文件时总是提示“已阻止不安全的下载”的解决方案
  • DQL-1-基础查询
  • 技术学习_大语言模型
  • 大数据平台与数据中台:从概念到落地的系统化实践指南
  • day045-nginx跳转功能补充与https
  • 安全风险监测预警平台对企业的价值
  • 【AI智能体】基于Coze 制作高质量PPT实战操作详解
  • Android Native 之 inputflinger进程分析
  • flutter flutter_vlc_player播放视频设置循环播放失效、初始化后获取不到视频宽高
  • PyQt5-高级控件-容器StackedWidget
  • 学习笔记(29):训练集与测试集划分详解:train_test_split 函数深度解析
  • Servlet开发流程(包含IntelliJ IDEA项目添加Tomcat依赖的详细教程)
  • 玄机——某学校系统中挖矿病毒应急排查
  • 打造Docker Swarm集群服务编排部署指南:从入门到精通
  • 【公司环境下发布个人NPM包完整教程】
  • 网络协议概念与应用层
  • 解释LLM怎么预测下一个词语的
  • 图像二值化方法及 Python OpenCV 实现
  • 使用v-bind指令绑定属性
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(1)神经网络预备知识(线性代数、微积分、概率等)
  • 新能源汽车功率级测试自动化方案:从理论到实践的深度解析
  • 如何将文件从 iPhone 传输到 Android(新指南)