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

发布于:2025-07-03 ⋅ 阅读:(24) ⋅ 点赞:(0)

本篇教程展示如何利用 Python,实现从 Excel 中提取稽查问题数据,并将对应图片按顺序插入到 Word 模板表格里,最终生成一份图文并茂的稽查报告。

目录

📝 Step 1:从 Excel 提取稽查问题数据

🖼 Step 2:读取并排序图片文件路径

🧩 Step 3:打开 Word 模板并添加表格行

🎯 Step 4:填充稽查内容与插入图片

💾 Step 5:保存最终文档

🖼️ 结果展示区

✨ 技术说明

✅ 小结

✅ 小结



📝 Step 1:从 Excel 提取稽查问题数据

from openpyxl import load_workbook

wb = load_workbook('数据.xlsx')
ws = wb.active
data = []
for row in range(2, ws.max_row + 1):
    number = ws[f'A{row}'].value
    problem = ws[f'B{row}'].value
    owner = ws[f'C{row}'].value
    data.append([number, problem, owner])
  • 读取 Excel 中第二行及以下的数据,生成 data 列表;

  • 包含三列:序号、问题描述、责任人。


🖼 Step 2:读取并排序图片文件路径

import os

path = "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 Cm

doc = 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))

💾 Step 5:保存最终文档

doc.save("6S稽查问题.docx")
  • 将填充好数据与图片的模板另存为新文档。


🖼️ 结果展示区

 

✨ 技术说明

  • 利用 os.path.getmtime() 排序图片,确保与 Excel 中的行一一对应;

  • add_picture() 可设置图像尺寸,帮助图片自适应表格 ;

  • 插图可根据 CVM 参数调整大小以适应排版;

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


 

✅ 小结

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

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

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

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

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

自取链接:夸克网盘分享

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

 

 

 

 

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到