找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4160|回复: 0

求助:Excel中数据通过MailMerge插入到word中生成文件的问题

1

主题

2

帖子

2

积分

贫民

积分
2
十方月 发表于 2020-11-10 12:30:41 | 显示全部楼层 |阅读模式
从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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表