python合并word
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python合并word相关的知识,希望对你有一定的参考价值。
参考技术A合并多个 word文件到 一个文件 中,用于文件的批量打印。
要求:
采用 python 实现,使用python中的 python-docx 和 docxcompose 结合的方式来实现此功能。
优点:
缺点:
只支持docx 文件的合并, 不支持doc文件 。如想通过此模式合并doc文件,需将doc文档转换为docx文档。
将一个文件夹中的所有文件,都合并到一个文档中。
要求每个文档,都从一个新页面开始,因此需在除第一个文档的每个文档前面加上 分页符 ,所以单独定义了一个只包含分页符的文档 page_break_doc 。
部分情况下会出现问题,如文档当前已经到 最后一行 了,新加的分页符会导致生成一页空白的文件, 此种情况,后续更新此文章时解决 。
定义目标文档,初始化时,采用 target_doc = Document(source_file_path_list[0]) 的方式,以第一个要拼接的文档作为初始文档。
主要是因为,如果创建的空的文档 target_doc = Document() ,新生成的文档中 自带的文档样式 (如标题样式、正文样式等) 将会影响新拼接的文档中的采用了默认样式的内容 ,故模板文档从第一个文档中进行加载默认样式,避免了这种情况。
这也是网上大多数采用此种方式合并word,样式发生变更的原因 ,需注意此问题。
同时需注意,如果拼接的文档中,存在默认格式不一样,并且未为段落、文字指定单独样式的情况时,需检查,第一个文件作为模板加载的默认样式, 是否会影响后续的其他文件合并后的默认样式 。
200个文件合并,耗时10秒左右。速度非常快
python脚本的程序,其他程序可以直接通过 命令行的形式调用 ,或者python提供http接口,程序通过 http接口调用 。
切记通过http接口调用其他程序是,需设置好调用超时时间,防止无限等待请求结果,导致负载均衡时,大量请求超时而导致的程序整体不再分发请求。
python第三方库实现word邮件合并功能
参考技术A众所周知word/WPS中的邮件合并功能可以根据word模板从excel表格中读取数据,进而生成不同的文件,可以说邮件合并是效率神器
但是邮件合并也有其缺陷,那就是每次合并数据都需操作插入合并域,如果经常需要根据数据生成固定模板word文件,那么就显得很麻烦
显然利用程序固定数据替换模式就极为方便,需要生成文件时可以一键操作
工具:python解释器,xlrd包(Excel数据读取),docx-mailmerge包(邮件合并包)
程序有2种文件生成方式:每个生成的文件分别为单一文件,所有生成文件构成一个文件
docx-mailmerge仅支持docx格式文件
完成的word模板:
word模板制作步骤:
excel数据:
导入python模块:
word模板和excel数据文件路径参数:
分别生成至不同文件:
生成效果:
全部生成至同一文件:
生成效果:
生成到同一文件有个小问题,每页证明文件后都有一页空白页,不过问题不大,打印时选择奇数页打印即可。
以上是关于python合并word的主要内容,如果未能解决你的问题,请参考以下文章