-
更多相关内容
-
PDF多目录批量合并,每个文件夹下的文档合并成一个pdf
2020-02-16 00:08:48N个文件夹,每个文件夹内有不等数量的pdf文件,批量让每个文件夹下的文档合并成一个pdf,也就是最后生成N个pdf 举个例子:共1000个pdf,分成了500个文件夹,每个文件夹下有2个pdf,批量自动合并成500个pdf -
C#实现合并多个word文档的方法
2020-09-04 04:06:30主要介绍了C#实现合并多个word文档的方法,是C#针对Word文档操作的一个非常重要的技巧,需要的朋友可以参考下 -
将多个docx格式的文档合并成一个文档并实现分页 MergeWord.java
2019-08-01 17:16:52将多个后缀为.docx文档合并成一个文档,并实现分页,避免因文档过多,打开过于麻烦 -
如何实用Java实现合并、拆分PDF文档
2020-08-25 20:24:32主要介绍了如何实用Java实现合并、拆分PDF文档,处理PDF文档时,这样的好处是对文档的存储、管理很方便。下面将通过Java程序代码介绍具体的PDF合并、拆分的方法,需要的朋友可以参考下 -
vba按原格式批量合并word文档
2019-04-28 09:46:52使用说明 功能:把一个文件夹下面的word文档按原文档的格式批量合并成一个word文档。 准备工作 把 合并文件.docm和需要合并的word文档(例如:测试用的...把filelist.txt文档合并成一个文档,保存在《合并后文档.docx》 -
使用Java合并多个word文档(aspose.jar)
2021-01-12 16:37:30使用aspose-words.jar 实现word文件合并。开源版,下载后可一直使用 1、支持word文档内容部分替换 2、支持word内容合并,包含页眉、页脚、批注等信息 3、doc、docx文件均可支持 4、轻量级,引入jar 包即可引用 -
Java实现多个文档合并输出到一个文档
2020-08-29 00:36:01主要为大家详细介绍了Java实现多个文档合并输出到一个文档的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
PDF文档合并工具软件
2018-07-03 13:38:52PDF文档合并工具软件,有几个文档想要合并到一起来编辑,就用PDF文档合并工具软件 -
office文档分割合并精灵(文档分割合并软件) v2.2.1绿色版
2018-09-18 16:01:17进行Access文档合并时可以选择生成Access 2003或Access 2007格式数据库 分割或合并Word和Excel文档时需要电脑预装相应软件支持,保存格式与其版本有关 分割或合并Docx格式文档时需要电脑预装Word2007软件支持 分割或... -
MFC_两文档合并
2013-10-23 14:55:04实现将两个文档内容合并,生成在新的文档中。 -
WORD文件无条件合并成一个文档
2019-08-02 14:36:52可以将任意多个WORD文件无条件合并成一个文档 -
POI-TL合并多个Word文档
2021-06-27 23:13:49POI-TL合并多个Word文档 -
Word高效商务排版 邮件合并 长文档排版
2021-06-29 21:01:15本课程是Word基础入门到高级商务应用,内容涵盖了Word格式化文字排版,Word表格制作,Word长文案目录,页码,页眉设置,更高效的Word邮件合并功能,让你使用的爱不释手,以及Word审阅与保护。 -
python文档拆分合并助手源码
2020-06-12 13:30:30该项目使用python开发,可以实现word、excel、pdf三种文档的拆分与合并工作,大大简化了手工操作的工作量。软件特色是自动化、效率高,对文档格式保护好,能按原格式进行输出。源码含详细注释,可自行修改。一定要... -
VBA 合并多个word文档到同一个新文档中
2019-03-18 10:07:46利用VBA语言将同一文件夹中的多个Word文档合并到一个新的Word中,使用简单快捷。 -
poi合并多个word文档并设置页码
2018-11-12 12:17:49资源描述了poi对于word的操作,poi合并word文档,poi设置word页码,内含maven依赖文档和完整代码,是一个完整工程,打开即可用 -
一款可以将PDF文件文档合并软件 就是把多个PDF文件合成一份.zip
2021-12-29 18:21:11一款可以将PDF文件文档合并软件 就是把多个PDF文件合成一份.zip -
java 多个pdf合并,目录生成(支持自定义目录),页码生成(源码)
2022-03-27 12:41:25纯java完成多个pdf合并及其目录生成(支持自定义目录),页码生成,目前只支持单列表目录,若有通用的pdf文档操作需求可反馈....源码内附彩蛋,有兴趣可自行发掘 -
java实现多个docx文档合并(基于docx4j)
2017-03-27 20:10:44java实现word的合并,jdk版本1.7,直接导入eclipse中即可。基于docx4j3.3.3实现。内含所有jar包,MargeDoc中含有主方法 -
java 使用POI合并两个word文档.docx
2022-01-13 11:00:13java 使用POI合并两个word文档.docx -
Word邮件合并后拆分单文档工具
2016-06-07 23:06:58Word邮件合并后不能导出单个的文档(分页的),这个VBA插件可以帮助你拆分单个Word文档,使用时需要修改部分源码,建议有编程基础的同行们使用,使用前先把信函合并至最后一步(可打印状态),序号调至第一个,然后... -
MDmesh:将多个 MarkDown 文件合并为一个的简单工具。 对文档有用
2021-06-28 02:01:27将多个 MarkDown 文件合并为一个的简单工具。 对文档有用。 要求 此工具使用( )。 安装 我制作了一个自动安装程序,您可以在克隆它后立即运行: setup.sh 。 对于手动安装,请查看文件。 用法 快速参考: python ... -
EXCEL文档合并小工具绿色版.rar
2019-09-02 22:35:21EXCEL合并小工具能够将几个EXCEL文档合并为一个。省去手工合并的麻烦。使用方法:选择基本目录,选择要合并的EXCEL文件,点击移动到左边框体内,可以自由修改合并起始以及Sheet,最后点击合并即可。 -
TXT文本文档合并器
2013-08-06 11:10:00可以方便的把任意几个TXT文档合并成一个文档,看连载小说的必备工具 -
xps文档合并实例
2013-11-15 15:22:58演示了xps文档的合并方法 其中有一个是微软的官方实例,写的很好,也很棒,但是文件整体比较绕,能把一般的人看晕了 另外一个是我对比的写的自己的一个例子,比较简单,容易让人理解 -
python实现word文档合并
2021-12-20 23:25:38python实现同一个人在多个目录下的word文档合并目录
背景:
由于工作需要,现在有这么一个需求,要合并大量的word文档,而且要在不同的目录下找到同一个人的word文档,进行合并,最终输出一个合并后的word文档。一般来说几个或者十几个量不多的话,就手工合并一下好了,但现在这个量是真的大。目录有十多个,每个目录又有50多个不同人的word文档,而且同一个人在不同目录下又不一定都有word文档,因此,整个合并工作就出现了人工操作的困难:
- 工作量多;
- 容易疏漏犯错。
为此,利用python进行高效准确的执行这类工作,尤为凸显现代自动化办公的能力。因此,我写了这个python脚本,作为一个小工具来辅助我的工作需求。
设计思路:
首先,整个脚本实现两个功能:
- 查看各目录下未提交word文档的名单
- 合并各目录下的word文档
查看各目录未提交名单:
对于这个需求,首先是读一个写有所有人姓名等信息的Excel文件,有格式要求。然后通过遍历Excel的信息,获取到所有人的姓名。遍历各目录下,是否有对应姓名的文件存在,如果没有,则输出没有提交文件的姓名。
合并word文件:
合并word文件和上一个需求有类似的地方。首先我们都需要读Excel文件,得到姓名信息,然后在各目录下获取到这个人所提交的所有word文件的文件路径,然后通过合并word的操作实现文件合并,合并后最终输出到指定的目录下。
脚本环境说明:
脚本对第三方包有依赖,执行前必须先安装对应的第三方包
pip install python-docx pywin32 xlrd
首先,目录结构必须是如下图所示,所有需要遍历的目录名称都必须是【实训+数字】,因为脚本中涉及多处正则匹配。
其次,Excel文件必须遵循下图所示的格式,首行是标题行,遍历的时候会自动跳过,遍历时会遍历C列和D列,其中C列是人员编号,D列是人员姓名
接着,python脚本必须要根目录下
最后,执行脚本的时候,必须带有传参,传递的参数就是那个Excel表
Microsoft Windows [版本 10.0.19043.1415] (c) Microsoft Corporation。保留所有权利。 C:\Windows\system32>python tools.py 花名册.xlsx
完整代码:
#! /usr/bin env python # -*- coding:utf-8 -*- """ ============================ ======Power By Python3====== ====== Author Task138 ====== ============================ """ import sys import xlrd, os, re from docx import Document from docxcompose.composer import Composer from win32com import client as wc # 读Excel表获取学生的学号和姓名 def read_excel(excel_file): workbook = xlrd.open_workbook(excel_file) sheet = workbook.sheet_by_index(0) name_list = [] name_dict = [] Sno_list = sheet.col_values(2)[1::] Sname_list = sheet.col_values(3)[1::] for i in range(len(Sno_list)): try: Sno = str(int(Sno_list[i])) except: Sno = Sno_list[i] dict = {} dict['Sno'] = Sno dict['Sname'] = Sname_list[i] name_list.append(Sname_list[i]) name_dict.append(dict) return name_list, name_dict # 合并文档 def merge_doc(source_file_path_list,target_file_path): #填充分页符号文档 page_break_doc = Document() page_break_doc.add_page_break() #定义新文档 target_doc = Document(source_file_path_list[0]) target_composer = Composer(target_doc) for i in range(len(source_file_path_list)): #跳过第一个作为模板的文件 if i==0: continue #填充分页符文档 target_composer.append(page_break_doc) #拼接文档内容 f = source_file_path_list[i] target_composer.append(Document(f)) #保存目标文档 target_composer.save(target_file_path) print('[ %s ]保存成功' % target_file_path) if __name__ == '__main__': if len(sys.argv) < 2: print('缺乏必要的参数,请输入学生Excel表作为参数') print('程序终止') exit() excel_file = sys.argv[1] print('请选择需要执行的功能:') print('[ 0 ] 查看各实训目录下未提交的学生名单') print('[ 1 ] 合并实训文件') cmd = input('请选择: ') while cmd not in ['0','1']: print('输入有误,请重新输入,按 Ctrl+C 可退出程序') print('请选择需要执行的功能:') print('[ 0 ] 查看各实训目录下未提交的学生名单') print('[ 1 ] 合并实训文件') cmd = input('请选择: ') try: name_list, name_dict = read_excel(excel_file) except Exception as e: print('Excel读取失败,程序终止,错误如下:') print(e) print() exit() else: if cmd == '0': # 实训目录的数列 file_list = [] for i in os.listdir(): if os.path.isdir(i): if re.match(r'实训\d', i): file_list.append(i) for i in range(1, len(file_list) + 1): dir_name = '实训%s' % i # 进入该实训目录 os.chdir(dir_name) file_list = os.listdir() submit_list = [] for x in file_list: for j in name_list: if j in x and j not in submit_list: submit_list.append(j) result = list(set(submit_list) ^ set(name_list)) if result: print(dir_name, result) os.chdir('../') if cmd == '1': if not os.path.exists('实训汇总'): os.mkdir('实训汇总') print('目录[ 实训汇总 ]创建成功') # 实训目录的数列 file_list = [] for i in os.listdir(): if os.path.isdir(i): if re.match(r'实训\d',i): file_list.append(i) for i in name_dict: doc_list = [] for j in range(1,len(file_list)+1): dir_name = '实训%s' % j # 进入该实训目录 os.chdir(dir_name) tmp = [] for x in os.listdir(): # 判断文件尾缀 fname,fext = os.path.splitext(x) # 如果是.doc,则转换为.docx if fext == '.doc' and not x.startswith('~$'): w = wc.Dispatch('Word.Application') doc = w.Documents.Open(os.path.abspath(x)) doc.SaveAs(os.path.join(os.getcwd(),'%s.docx' % fname), 16) doc.Close() os.remove(x) print('转换文件[ %s ]类型为.docx' % x) elif fext == '.docx': if (i['Sname'] in x) and (len(tmp) == 0): # 只有一个文件 tmp.append(x) elif (i['Sname'] in x) and (len(tmp) != 0): # 有多个文件,按照最新的修改时间进行替换 tmp_file = tmp.pop() old_file_mtime = os.path.getmtime(tmp_file) new_file_mtime = os.path.getmtime(x) if new_file_mtime > old_file_mtime: # 新文件比较新,以新的为准 tmp.append(x) else: # 老文件比较新,以老文件为准 tmp.append(tmp_file) else: # 其它文件类型,直接跳过 # print('当前文件[ %s ]类型不是.doc或者.docx,跳过此文件的合并' % os.path.abspath(x)) continue if tmp: # 如果这次实训有这位同学的文件 doc_list.append(os.path.join(dir_name,tmp.pop())) # 返回父目录 os.chdir('../') if doc_list: # 有内容,进行文档合并 try: merge_file_name = i['Sno'] + '-' + i['Sname'] + '-' + '实训汇总' + '.docx' merge_doc(doc_list, './实训汇总/' + merge_file_name) except Exception as e: print() print('[ %s ]学生信息有误,程序中断' % i['Sname']) print(e) print()
功能执行效果图:
总结:
通过python,我们可以很便捷的满足我们的需求,鉴于这个需求似乎是长期性的,所以还是有必要写个小工具来优化一下自己的办公方式,提高自己的业务能力。
-
现代信息技术:批量文档制作──邮件合并.pptx
2022-05-17 09:38:38主文档准备数据源文档准备邮件合并目录 邮件合并01CONTENTPART 01邮件合并邮件合并1.邮件合并的定义 将主文档和数据源进行合并,快速批量的生成word文档,用于解决批量分发文件或邮寄相似内容信件时的大量重复性问题... -
文本文件合并工具.exe
2020-07-20 18:36:58本工具用于模块化开发 脚本合并,多个sql文件打包到一个文件,实现高速部署数据库脚本。 文件夹下多文本文件合并,快速合并到一个文件,方便复制、整理汇总文档。 -
word文档合并C#实现
2011-01-22 01:01:00本程序演示C#如何完成word文档合并。 在此基础上演示如何在word文档中进行基本的读写的操作。