python 合并word文件_python自动化办公(1)—— 批量合并word文档

上个月领导交给我一个非常紧急的任务,限我2天之内完成。其中有一项是将项目两年内的分析报告汇总到一篇报告中。这些报告分散在不同的目录下,而且数量也非常多。

我花了30分钟左右梳理了一下这些分析报告,竟然有200多份,每份分析报告大概5-10页。我粗略计算了工作量,每次操作需要打开子目录——>找到word文档——>全选复制——>粘贴到新文档——>调整格式——>核对检查,完成一次操作至少得3分钟。合并完这200多份报告就得10个小时了,期间出现错误还得用更多的时间,这太浪费时间了!于是我就在网上搜索如何快速合并文档,终于找到了一个办法。

我稍微了解了一些这种方法,按照这种方式,只能选择同一层次目录下的文档,当子目录非常多的时候,这种方法也不能一次把所有的文档都插入进去。但我还是按照上面的步骤进行了文档合并,点击确认后word的图标就变成灰白色了,软件就卡住了。无奈之下,我只能强制退出了。我又连续试了几次都是如此,我的工作再一次陷入了僵局。

我思考了一会儿,突然想起python在处理大规模数据上非常有优势,何不用python试试?于是我用python的组间对象模型(COM)设计了一个同时对多个word文件进行合并的程序,代码如下:

import win32com.client as win32

import os

word = win32.gencache.EnsureDispatch('Word.Application')

#启动word对象应用

word.Visible = False

path = r'D:\software\doc'

files = []

for filename in os.listdir(path):

filename = os.path.join(path,filename)

files.append(filename)

#新建合并后的文档

output = word.Documents.Add()

for file in files:

output.Application.Selection.InsertFile(file)#拼接文档

#获取合并后文档的内容

doc = output.Range(output.Content.Start, output.Content.End)

output.SaveAs('D://software//doc//result.docx') #保存

output.Close()

大概等了两三分钟,一份1100多页,27万多字的分析报告就自动完成了,如果要用手动的方法去做,估计2天之内都不一定能完成,而且很可能出现大量的错误。

经过这一次尝试,让我有了梳理一些常见python自动化办公技巧的想法,希望在我总结经验的同时,也能够帮助到大家~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值