|
从excel查找数据,使用MailMerge插入word中,有没有办法使每行生成一页,而不是每行生成一个文件?最终只需要一个文件。
import xlrd
from docx import Document
from mailmerge import MailMerge
filepath1=r'E:\***表.xlsx'
wb1=xlrd.open_workbook(filepath1)
sht1=wb1.sheet_by_name('Sheet1')
filepath2=r'E:\***表2.xlsx'
wb2=xlrd.open_workbook(filepath2)
sht2=wb2.sheet_by_name('总人数')
i=3#从表格1第三行开始
while i<=252:#252为表一的总行数
xingming=sht1.cell_value(i,2)#姓名
shengfen=sht1.cell_value(i,3)#身份信息
j=2
pone=''
xingbie=''
while j<=893:#从表2中查找姓名对应的性别和电话号码
xingming2=sht2.cell_value(j,0)
if xingming2!=xingming:
j=j+1
else:
pone=sht2.cell_value(j,12)#电话号码在第12列
xingbie=sht2.cell_value(j,8)#性别在第8列
print("电话号码是",pone)
break
template=r"E:\zhen1.docx"#事先通过“邮件合并“编辑好的word模板,MailM好像不支持中文名,否则报错
document_1=MailMerge(template)
document_1.merge(name=u''+xingming)
document_1.merge(xingbie1=u''+xingbie)
document_1.merge(shengfenzhen1=u''+shengfen)
document_1.merge(pone1=u''+pone)
document_1.write(r"E:\\证明\\"+xingming+".docx")#生成文件,有没有办法生成一个页面而不是文件
i=i+1
|
|