python操作word文档,合并

news/2024/11/6 12:38:08/

有个业务需求要将上千个word文档(doc格式)合并,看着头大。。不过会python,那都不是问题。

1、安装第三方库 python_docx

pip install python_docx

2、批量将doc文档转换为docx文档(因为python操作doc文档很麻烦,docx支持得不错)

需要安装pypiwin32,因为用到了 win32com

pip install pypiwin32
import docx
import os
from glob import globfrom win32com import client as wcbase_dir  = "C:\\Users\\KK.JustDoIT\\Downloads\\汇总\\报修单\\日常维修-报修单-2月"# 批量另存为
def batch_save_as():for p in glob(os.path.join(base_dir, '*.doc')):new_file = p.replace('doc', 'docx')if os.path.exists(new_file):continueword = wc.DispatchEx('Word.Application')# 后台运行,不显示,不警告wc.Visible = Falsewc.DisplayAlerts = 0doc = word.Documents.Open(p)        # 目标路径下的文件doc.SaveAs(new_file, 12, False, "", True, "", False, False, False, False)  # 转化后路径下的文件 #12为docxdoc.Close()word.Quit()batch_save_as()

也可以转换为其他的格式,参数参考:python之office_word相关操作_hanli0902的博客-CSDN博客

3、将所有转换后的docx合并为一个新的word文档(docx)

方法一:(实测合并后有点瑕疵,格式有细微变化)

import docx
import os
from glob import globbase_dir  = "C:\\Users\\KK.JustDoIT\\Downloads\\汇总\\报修单\\日常维修-报修单-2月"
save_path  = "C:\\Users\\KK.JustDoIT\\Downloads\\汇总\\报修单"#合并操作
def combine_word_documents(files):merged_document = docx.Document()for index, file in enumerate(files):sub_doc = docx.Document(file)# Don't add a page break if you've reached the last file.if index < len(files)-1:sub_doc.add_page_break()for element in sub_doc.element.body:# print(element)merged_document.element.body.append(element)merged_document.save(os.path.join(save_path, 'merge.docx'))# 执行
path_list = glob(os.path.join(base_dir, '*.docx'))
combine_word_documents(path_list)

方法二:(实测格式无问题)

需要安装docxcompose

pip install docxcompose
import docx
import os
from glob import globfrom docxcompose.composer import Composerbase_dir  = "C:\\Users\\KK.JustDoIT\\Downloads\\汇总\\报修单\\日常维修-报修单-2月"
save_path  = "C:\\Users\\KK.JustDoIT\\Downloads\\汇总\\报修单"def combine_all_docx(files_list):number_of_sections=len(files_list)master = docx.Document()composer = Composer(master)for i in range(0, number_of_sections):doc_temp = docx.Document((files_list[i]))composer.append(doc_temp)composer.save(os.path.join(save_path, 'merge.docx'))# 执行
path_list = glob(os.path.join(base_dir, '*.docx'))
combine_all_docx(path_list)


http://www.ppmy.cn/news/269710.html

相关文章

用Python读写Word文档入门

最近有同事需要批量出500个Word文档&#xff0c;按照1个Word文档耗时1分钟来算也需要8.33小时足足有1天工时。于是&#xff0c;这位同事找到了才哥帮忙&#xff0c;才哥接过需求花了不到30分钟写好脚本&#xff0c;运行脚本不到1分钟就生成了500份Word文档并且进行了分类归档&a…

JAVA 下载Word文档

最近在做java中页面下载word文档&#xff0c;给大家分享一下。 我的环境是MyEclipse10 , JDK1.6 ,Tomcat 6&#xff0c;我这里使用的是FreeMarker。FreeMarker是一个引擎模板。点击了解 FreeMarker。好了&#xff0c;废话不多说直接上代码 一。首先我们需要制作一个ftl模板&a…

计算机word文档工作区名称,word文档界面名称 word文档的界面组成

1、最左上角是word的图标及word视窗,接下来是菜单,再下来是工具栏,有数字的是标尺 2、随意点开一个菜单,插入,这个的菜单项有好多,我们选择一个引用,下拉菜单选索引和目录,会弹出一个相应的对话框来。 3、编辑好word文档后,要对文档进行相关设置,就会用到对话框里的选…

java将html转为word文档,java html转换为word文档

public static boolean writeWordFile() { boolean w false; String path "d:/"; try { if (!"".equals(path)) { // 检查目录是否存在 File fileDir new File(path); if (fileDir.exists()) { // 生成临时文件名称 String fileName "a.doc"…

word文档图标变成白纸_word文档图标显示异常怎么办

当我们在使用word文档的时候,可能会遇到word文档图标显示异常的情况,那么这个时候我们该怎么办?下面是学习啦小编整理的word文档图标显示异常的解决方法,供您参考。 word文档图标显示异常的解决方法一 点击“开始”菜单,输入“运行”并搜索。 点击“运行”。 输入 regedit…

mac(M1)芯片安装Stable-diffusion-webui

背景&#xff1a;听同事说这个都是在GPU上跑的&#xff0c;cpu跑这个比较费劲。我本地mac跑这个&#xff0c;也是为了调试一些相关的插件和api。为了开发方便点。当然确实提吃内存的。 目录 一、Stable-diffusion-webui 项目地址和官方安装方式 二、自己的安装方式 2.1、更…

怎么给word文档注音_Word文档怎么添加拼音给文字注音

在文档中我们有时需要对个别难读的字注音让人明白,或者在小学课堂中,常常需要对文章注音帮助阅读,那么在word中怎么完成这个功能呢? Word文档怎么添加拼音? 1、打开Word文档。 2、在该界面内输入我们需要的文字,并将输入的文字选择起来,然后找到开始开始里的拼音指南选项…

Word文档插入图片显示不全调整

在Word中插入图片&#xff0c;如果图片大小正常&#xff0c;但是仅能显示一行高度的内容&#xff0c;其他内容均无法显示&#xff0c;例如图中所示 选中图片&#xff0c;点击图片边缘阴影处&#xff0c;选择段落&#xff0c;在段落中选择行距&#xff0c;设置行距倍数。 即可解…