快速合并大量Word并分别添加分页符:Python实现

2024-04-29 23:48:14 9点赞 28收藏 4评论

  本文介绍基于Python,实现对多个Word文档加以自动合并,并在每次合并时按要求增添一个分页符的方法。

  现有多个Word文档文件,需将其按名称顺序合并为一个新的Word文件,且需保证每一次合并时,都另起一页(即新的Word文件一页中,不能出现两个及以上的原本单个Word文件的内容)。

  一般的,实现多个Word文件的合并,在Word中可以通过“插入”→“文本”→“对象”的方式进行,较为方便。

快速合并大量Word并分别添加分页符:Python实现

  在弹出的窗口中选择需要合并的Word文件即可。

快速合并大量Word并分别添加分页符:Python实现

  但是,这种方法工作量较大,且无法满足合并时另起一页的要求。例如,如果原本有两个Word文件,每个文件中都仅有一页,一页中仅在第一行有内容(这里假设是一行数字),则合并后的新Word文件同样为一页,该页中包含两行数字,即无法另起一页合并。

  因此,本文就结合Pythonpython-docxdocx)模块与docxcompose模块,实现本文开头提及的需求。

  首先安装python-docx模块。由于我用的是Anaconda,因此就直接在Anaconda Prompt (Soft)中加以安装。

  打开Anaconda Prompt (Soft)

快速合并大量Word并分别添加分页符:Python实现

  在弹出的界面中输入:

conda install -c conda-forge python-docx快速合并大量Word并分别添加分页符:Python实现

  输入y,开始安装。

快速合并大量Word并分别添加分页符:Python实现

  随后即可安装完成。

快速合并大量Word并分别添加分页符:Python实现

  接下来安装docxcompose,还是一样的操作。输入:

pip install docxcompose快速合并大量Word并分别添加分页符:Python实现

  安装完成后,即可开始代码的书写。整体代码如下:

import os from docx import Document from docxcompose.composer import Composer original_docx_path='F:/其他学生工作/2020就业联络员/2021.06派遣材料与调档函/地信1701_就业派遣材料/' new_docx_path='F:/其他学生工作/2020就业联络员/2021.06派遣材料与调档函/地信1701.docx' all_word=os.listdir(original_docx_path) all_file_path=[] for file_name in all_word: all_file_path.append(original_docx_path+file_name) master=Document(all_file_path[0]) middle_new_docx=Composer(master) num=0 for word in all_file_path: word_document=Document(word) word_document.add_page_break() if num!=0: middle_new_docx.append(word_document) num=num+1 middle_new_docx.save(new_docx_path)

  首先,对代码加以初步介绍。original_docx_path为存放需要合并的Word文件路径,new_docx_path为需要合并入其中的Word文件,这里大家直接在目标路径下新建一个Word文件并重命名为需要的文件名即可。

  随后,通过os.listdir获取所有需要合并的Word文件文件名。在这里需要注意,如果需要按照文件名称作为合并顺序,大家直接在资源管理器中调整文件排序方法为名称即可。随后通过.append()逐一将文件名称与其路径合并。

  接下来,设立一个Word文件模板master。其实这个模板就是限定了合并完成后的新Word文件的字体等格式,如果我们不设置模板,就会用docx模块中的默认模板,导致合并后的文件字体与合并前的文件字体不一致(内容是一致的,主要是字体等格式会出问题)。在这里,为了保证合并完成后的新Word文件的字体等格式与合并前文件一致,直接用all_file_path[0](也就是即将要被合并的第一个文件)作为模板即可。其次,将模板用Composer()激活(这里Composer函数个人认为就是激活的作用),从而将其作为模板格式,对多个待合并的文件加以约束。

  最后,由于需要保证每一次合并都另起一页,便用.add_page_break()函数,在每一次合并前将这一待合并的文件末尾增添分页符。同时,由于我们用了第一个待合并文件作为模板,因此后期只需要从第二个文件开始进行合并即可(可以理解为,文件一旦选择为模板,其自动完成了自身的合并)。最后保存文件即可。

  综上,便完成了“按名称顺序合并为一个新的Word文件,且需保证每一次合并时,都另起一页”的需求。但是需要注意,这一方法对于较为复杂的Word文件(例如含有文本框等形式内容的文件)不能实现合并,会报错;对于含有普通文字、图片等的Word文件而言,还是很方便的~

  至此,大功告成。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

388元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

219元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

199元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

365office365OfficePLUS Microsoft365 12 -

365office365OfficePLUS Microsoft365 12 -

235元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

218.5元起

SANGFOR 深信服科技 AF-2000-FH2130B-T6 下一代防火墙

SANGFOR 深信服科技 AF-2000-FH2130B-T6 下一代防火墙

125000元起

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

40000元起

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

67980元起

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

50000元起

SANGFOR 深信服科技 防火墙AF-2000-FH3100A边界安全防护系统

SANGFOR 深信服科技 防火墙AF-2000-FH3100A边界安全防护系统

410000元起

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

75.05元起

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

298000元起
4评论

  • 精彩
  • 最新
  • 哎呦,不错哦。收藏了,希望楼主多产如母猪!

    校验提示文案

    提交
    哈哈哈哈哈 非常感谢您的支持啦!没问题没问题 我尽可能多产!!!

    校验提示文案

    提交
    收起所有回复
  • 你的文章让我对Python在Word操作中的应用有了更深的理解!很高兴看到你对合并Word文档的细节分享,期待你未来能带来更多精彩的技术解读!

    校验提示文案

    提交
    不客气的!我也会继续发布类似高质量的内容,增强你的学习能力!!!!

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
28
扫一下,分享更方便,购买更轻松