美文网首页WE自动化批处理文件
Python将Excel数据插入Word模板生成详细内容文档

Python将Excel数据插入Word模板生成详细内容文档

作者: 快乐的小豹子 | 来源:发表于2019-01-05 13:35 被阅读793次

    最近在实际工作中遇到的一个情况是,每个月固定时间要报送一批文档,文档的内容相似,有固定的模板,我这么懒的人肯定要想一个一劳永逸的办法。下面把搜索发现的情况记录一下,以备以后需要。

    Python有个叫做docx-mailmerge的包,它的作用简单可以理解成替换指定内容,更复杂的工作内容还没有涉及,以后遇到了再补充。

    如何安装?

    
    pip install docx-mailmerge
    
    

    怎么在word中设置域,既数据需要填充的地方?

    单位和家中的word存在一定的版本差异,为了统一性,以WPS为例,如图所示

    image

    选择邮件合并,在域代码位置输入想要设置的变量名称

    image image

    在Excel表中写出相应的数据,name只是为了和word中域的名字相同,方便对照,实际第一行的数据没有意义

    image
    
    import xlrd #引入excel读取模块
    import xlwt #引入excel写入模块
    from mailmerge import MailMerge #引用邮件处理模块
    datafile_path = '你的数据文件.xls'
    data = xlrd.open_workbook(datafile_path)  #获取数据
    table = data.sheet_by_name('Sheet1')
    nrows = table.nrows
    template = '你的模板文件.docx'
    document = MailMerge(template)
    for i in range(nrows): #循环逐行打印
      if i > 0: #排除0项无用数据
        document.merge(
          name=table.row_values(i)[1]
        )
        wordname= table.row_values(i)[1]+'.docx'
        document.write(wordname) #创建新文件
    

    这样Excel表中有多少项数据,就会新创建多少个文档~

    Python 让生活更轻松~

    PS:主要特别注意的是,文件的后缀一定要是docx,不是先另存为转化。

    相关文章

      网友评论

        本文标题:Python将Excel数据插入Word模板生成详细内容文档

        本文链接:https://www.haomeiwen.com/subject/dfvrrqtx.html