合并多个 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接口调用其他程序是,需设置好调用超时时间,防止无限等待请求结果,导致负载均衡时,大量请求超时而导致的程序整体不再分发请求。
先来看看openpyxl库的官方说明:openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.这个库是针对2010 及以上Excel文档的,笔者测试过2007是会报错的。
Python使用openpyxl库在实际的应用中可以提高效率。本文分享测试两个案例。
1、修改统计文档数据
读取表中数据,计算平均分和总分,并且保存到最后两列,最后再写入到文件中。
2、多文档合并手祥消
这个在实际的生活中可是大有用处毕知。试想一下现在有很多报名表,需要将报名表集中在一起,那么只能一个个打开文档复制粘贴,太低效率了。Python使用openpyxl库就可以很快的完成将目录下的.xlsx文件合并在一起。
get_all_xlsx_files函数的作用是找到目录下的xlsx文件,并按照文件名进行排序;
merge_xlsx_files函数的作用是通过获取表中数据,然后调用ws.append函数添加到汇总表的后面。
main主函数执行合并 *** 作,并写入汇总文宴埋件中。
合并效果如下:
在学校打印店,有时会打印很多文件,桥野因为文件数量多,过程会比较繁琐。自己没事动手写了一个pdf合并的python脚本,方便将多个手洞pdf文件合并为一。这样打印时候只需点开一个文件打印即毕消枯可。
需要 Python 和 PyPDF2 。Python安装可在官网找到;PyPDF2可以通过pip安装,可以利用命令行工具输入一下命令
将需要合并的文件与本文后面的Python脚本放在同一目录下,运行脚本得到 Merged.pdf 即为合并的pdf文件。
如果需要按照一定顺序合并pdf文件,可以将pdf文件重命名,按顺序将文件重命名为 1.pdf 、 2.pdf 以此类推。
如果需要将某一pdf文件在合并文件中重复多次,可以将该文件直接在当前目录下拷贝成多个副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)