办公-读取exl批量制作word模板
办公-读取exl批量制作word模板(存在一定问题但已解决)
参考代码 Python自动化办公之Word,全网最全看这一篇就够了
python套用word模板_如何使用MailMerge用python填写word模板?
代码
from openpyxl import Workbook, load_workbook
from mailmerge import MailMerge
# 加载excel文件
wb = load_workbook("123.xlsx",data_only=True)
# 获取所在的工作表
sheet = wb.active
flag=0
countRow=0
lastRow=(0,0)
for row in sheet.iter_rows(min_row=2, max_row=38,min_col=1, max_col=8):
save = 0
for i in row:
if i.value==None:
flag=1
continue
if (flag==1 and save==0):
name=lastRow[4].value
num=lastRow[3].value
classs=lastRow[0].value
mayor=str(classs)[:-3]
xuefen=row[7].value
if int(xuefen)>=12:
print(name,num,mayor,classs,xuefen)
template = '模板.docx'
document = MailMerge(template)
document.merge(name=name,
num=str(num),
mayor=mayor,
classs=classs,
xuefen=str(xuefen))
document.write('新建文件夹\{:}的学业.docx'.format(name))
save=1
print(i.value,end=', ')
flag = 0
print()
lastRow = row
countRow+=1
print(countRow)
限制(已解决)
1.document.merge(name=name,
num=str(num),
mayor=mayor,
classs=classs,
xuefen=str(xuefen))函数使用时虽然name,sum,mayor,classs,xuefen数据已更新,但产生新模板时依然只沿用老数据,使得新产生的模板虽然名字不同,里面的内容都是一样的(数据与第一次运行该函数的数据相同)
(1)解决方案:将template = '模板.docx';document = MailMerge(template)两行代码移到循环里即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?