-
2021-02-14 23:39:04
定义函数info_update。只需要向其中传入目标文件路径,待替换的词和新词即可
import docx def info_update(doc,old_info, new_info): '''此函数用于批量替换合同中需要替换的信息 doc:文件 old_info和new_info:原文字和需要替换的新文字 ''' #读取段落中的所有run,找到需替换的信息进行替换 for para in doc.paragraphs: # for run in para.runs: run.text = run.text.replace(old_info, new_info) #替换信息 #读取表格中的所有单元格,找到需替换的信息进行替换 for table in doc.tables: for row in table.rows: for cell in row.cells: cell.text = cell.text.replace(old_info, new_info) #替换信息
传入需要替换的原文件
import os #用于获取目标文件所在路径 path="data/" # 文件夹路径 files=[] for file in os.listdir(path): if file.endswith(".docx") and file.startswith("公司"): #排除文件夹内的其它干扰文件,只获取word文件 files.append(path+file) files #打印结果 ['data/公司001合同.docx', 'data/公司002合同.docx', 'data/公司003合同.docx', 'data/公司004合同.docx', 'data/公司005合同.docx', 'data/公司006合同.docx', 'data/公司007合同.docx', 'data/公司008合同.docx', 'data/公司009合同.docx', 'data/公司010合同.docx']
根据替换条件替换后保存
for file in files: doc = docx.Document(file) info_update(doc,"商贸", "仁和") doc.save("data/替换结果/{}".format(file.split("/")[-1])) print("{}替换完成".format(file)) #打印结果 data/公司001合同.docx替换完成 data/公司002合同.docx替换完成 data/公司003合同.docx替换完成 data/公司004合同.docx替换完成 data/公司005合同.docx替换完成 data/公司006合同.docx替换完成 data/公司007合同.docx替换完成 data/公司008合同.docx替换完成 data/公司009合同.docx替换完成 data/公司010合同.docx替换完成
如果要替换指定地方的关键字,先获取关键字所在段落。
#获取词"商贸"所在段落 import docx #导入docx库 doc = docx.Document("data/含干扰词/特殊_含干扰词.docx") #打开word文件 text=[] #新建一个空列表text,然后将word文档中的所有段落对应的文本提取并存入这个列表。 #列表是可以使用索引函数的,而列表里面元素的索引正好对应段落的索引。 for para in doc.paragraphs: #读取word中的每个段落 text.append(para.text) print(len(text)) target_index=[] #空列表target_index,用于存储包含“商贸”一词的字符串在列表text中的索引 for i in text: if "商贸" in i: target_index.append(text.index(i)) target_index #77 #[15, 26, 32, 38, 66]
为了验证是否准确,我们可以打印看一下相应索引对应的段落是否真的包含“商贸”一词。如下打印结果显示,结果很理想。
for j in target_index: print(doc.paragraphs[j].text) ’‘’乙方:ABC商贸有限责任公司 1.交货方法:由乙方送货(国家主管部门规定有送货办法的,按规定的办法执行;没有规定送货办法的,按双方协议执行);商贸 1.所有货物由乙方送到交货地点且甲方确认收货后5天内,由甲乙双方共同对货物的包装、 外观、数量、商标、型号、规格及性能等进行验收,签署检验报告。如乙方未按约定到甲 方指定地点参加检验的,应视为乙方对甲方单方检验的结果予以确认。验收标准执行合同 规定的货物质量标准。商贸 总价指甲方的交货价格,该价格应包含货物价格、通关费、包装费、物流费、装卸费、 保险费、在甲方指定场所的安装调试费、必要的培训费以及增值税等一切费用。在乙 方完全履行本合同下全部义务的情形下,除非另有书面约定,否则合同金额是甲方应 当向乙方支付的全部费用 。商贸 本合同自双方法定代表人或委托代理人签字盖章后生效,至合同条款履行完毕时终止。商贸‘’‘
因为我们只替换第一、第三、第六个“商贸”为“仁和”,而第六个在表格中。所以需要改一下原来的替换函数info_update,命名为新的函数info_update_new,我们在函数内指定只替换段落15和32中的目标词,表格中的目标词也继续替换。
import docx def info_update_new(doc,old_info, new_info): '''此函数用于批量替换合同中需要替换的信息 doc:文件 old_info和new_info:原文字和需要替换的新文字 ''' #读取段落中的所有run,找到需替换的信息进行替换 for i in [15,32]: para=doc.paragraphs[i] for run in para.runs: run.text = run.text.replace(old_info, new_info) #替换信息 #读取表格中的所有单元格,找到需替换的信息进行替换 for table in doc.tables: for row in table.rows: for cell in row.cells: cell.text = cell.text.replace(old_info, new_info) #替换信息
用于获取目标文件所在路径
import os #用于获取目标文件所在路径 path="data/含干扰词/" # 文件夹路径 files=[] for file in os.listdir(path): if file.endswith(".docx"): #排除文件夹内的其它干扰文件,只获取word文件 files.append(path+file) for file in files: doc = docx.Document(file) info_update_new(doc,"商贸", "仁和") doc.save("data/替换结果/{}".format(file.split("/")[-1])) print("{}替换完成".format(file)) #data/含干扰词/特殊_含干扰词.docx替换完成
更多相关内容 -
批量修改替换多个Word文档中同一内容的方法
2015-10-28 15:53:55批量修改替换多个Word文档中同一内容的方法 -
》》》批量替换多个word文档多处内容小工具《《
2022-04-02 14:37:21批量替换、多个word文档、多处内容、word中表格内容、小工具 -
word多个文档替换内容
2018-09-05 14:51:57替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016 根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&utm_content=note...替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016
根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
第一步:新建一个Word并打开,点击工具栏视图–宏(下边的倒三角)–查看宏
第二步:填写一个文件名,点击创建
第三步:复制以下代码,替换新创建的宏代码(如果以前有宏注意不要误删),注意代码格式,保存Sub CommandButton1_Click() Application.ScreenUpdating = False '关闭屏幕闪 Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$ Set myAPP = New Word.Application With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹 .Title = "选择目标文件夹" If .Show = -1 Then myPath = .SelectedItems(1) '读取选择的文件路径 Else Exit Sub End If End With myPath = myPath & "" myFile = Dir(myPath & "\*.docx") txt = InputBox("需要替换的文字:") Re_txt = InputBox("替换成:") myAPP.Visible = True '是否显示打开文档 Do While myFile <> "" '文件不为空 Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile) If myDoc.ProtectionType = wdNoProtection Then '是否受保护 With myDoc.Content.Find .Text = txt .Replacement.Text = Re_txt .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Replace:=2 End With End If myDoc.Save myDoc.Close myFile = Dir Loop myAPP.Quit '关掉临时进程 Application.ScreenUpdating = True MsgBox ("全部替换完毕!") End Sub
第四步:回到Word文档,点击视图–宏,运行宏
第五步:弹出窗口,选择需要替换文档的文件夹(文件夹下不会显示文件名)
第六步:要替换的文字
第七步:替换成
第八步:需要等待一会,显示全部替换完毕即可
-
多WORD文档批量查找替换 宏
2022-03-03 22:04:08当需要在多个WORD文档中批量查找替换时,此宏可帮助遍历整个目录下的所有doc和docx格式的word文件并批量进行替换保存操作,大大提高工作效率。 此文档是一个WORD的VBA宏,不存在病毒也无需注册收费。且除了需要打开... -
使用Java合并多个word文档(aspose.jar)
2021-01-12 16:37:30使用aspose-words.jar 实现word文件合并。开源版,下载后可一直使用 1、支持word文档内容部分替换 2、支持word内容合并,包含页眉、页脚、批注等信息 3、doc、docx文件均可支持 4、轻量级,引入jar 包即可引用 -
C# aspose.word 批量替换文件夹下所有word文件里的字符串代码
2018-12-04 15:14:32C# aspose.word 批量替换文件夹下所有word文件里的字符串代码,c#替换word文件最简单方法 -
宏批量替换多个word指定文字
2022-04-27 11:29:161、新建一个word文本,点击”开发工具“菜单下的”宏“按钮(如没有开发工具可点击”视图“下的宏按钮) 2.输入名称后点击”创建“按钮 3.输入如下代码: Sub CommandButton1_Click() Application....1、新建一个word文本,点击”开发工具“菜单下的”宏“按钮(如没有开发工具可点击”视图“下的宏按钮)
2.输入名称后点击”创建“按钮
3.输入如下代码:
Sub CommandButton1_Click() Application.ScreenUpdating = False '关闭屏幕闪 Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$ Set myAPP = New Word.Application With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹 .Title = "选择Word所在文件夹" If .Show = -1 Then myPath = .SelectedItems(1) '读取选择的文件路径 Else Exit Sub End If End With myPath = myPath & "" myFile = Dir(myPath & "\*.docx") txt = InputBox("需要替换的文字:") Re_txt = InputBox("替换成:") myAPP.Visible = True '是否显示打开文档 Do While myFile <> "" '文件不为空 Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile) If myDoc.ProtectionType = wdNoProtection Then '是否受保护 With myDoc.Content.Find .Text = txt .Replacement.Text = Re_txt .Forward = True .Wrap = 2 .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Replace:=2 End With End If myDoc.Save myDoc.Close myFile = Dir Loop myAPP.Quit '关掉临时进程 Application.ScreenUpdating = True MsgBox ("全部替换完毕!") End Sub
完成后点击 ”保存“,然后关闭
4.回到Word文档,点击宏,运行宏
5.按照向导进行替换过程,等待弹出”全部替换完毕“后即可。
-
Apache poi 根据word模板生成word报表 替换 循环列表 图片
2020-03-11 14:52:26Apache poi 根据word模板生成word报表 替换 循环列表 图片,代码调试过了,修改相应的图片位置,word模板路径即可运行 -
批量替换word文字
2018-08-11 11:53:12此工具用于批量替换多个word中指定的相同文字,省时省力 -
word宏实现一个文件夹内所有word文档的内容替换
2019-03-22 01:32:24NULL 博文链接:https://parra.iteye.com/blog/899893 -
C# NPOI替换Word文档模板
2019-11-29 18:16:19C#版本 NPOI 批量替换Word文档(doc文件)变量的方法。 网上各种代码都是直接替换run,但实际上很多变量是由多个run表示的,并不能直接用,本代码完美支持{变量}替换。 -
VBA批量替换多个WORD文档中的内容.docx
2021-09-27 01:57:51VBA批量替换多个WORD文档中的内容.docx -
批量修改多个word文件 同一内容
2015-10-22 09:10:25批量修改替换多个Word, 第二种方法, A,首先将需要批量替换的多个Word文档放在同一文件夹下面。 B,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。 C,在... -
批量查找修改替换多个 Word 文件中的关键字,也支持修改替换 Excel、PPT、PDF 和记事本文本文件
2022-03-11 07:23:07概要:「我的ABC软件工具箱」支持批量查找 Word 文件中的关键字,并进行批量修改替换这些关键字。同时也支持批量查找修改替换 PPT 文件、Excel 文件、PDF 文件和文本文件(如:记事本 TXT、HTML、XML 等),我们可以...概要:「我的ABC软件工具箱」支持批量查找 Word 文件中的关键字,并进行批量修改替换这些关键字。同时也支持批量查找修改替换 PPT 文件、Excel 文件、PDF 文件和文本文件(如:记事本 TXT、HTML、XML 等),我们可以使用这个工具实现批量删除文件内的关键字,或修改替换成我们想要的关键字,非常实用。
文件内容的查找与替换对我们每办公族来说再正常不过了,因为在工作中经常会需要碰到。今天要介绍的这款办公文件批量处理软件——我的ABC软件工具箱,它有个【按规则批量修改文件内容】的功能可以实现批量修改和替换 Word 文件的内容,同时也支持批量修改和替换 Excel、PPT、PDF、Txt 记事本、HTML、XML 等文本文件的内容。
添加需要批量查找和替换的文档
打开软件,进入「 按规则批量修改文件内容」的功能中,如下图:
在右上角添加需要批量查找和替换的 Word、PPT、Excel、PDF 和文本文件(如:记事本 TXT、HTML、XML 等文件):
设置批量查找和替换的规则
上面已经添加了需要批量查找和替换文件内容的文档列表,这一步我们需要设置批量查找和替换的规则信息,一条规则是指我们一次查找与替换的设置,它明确地告诉软件需要批量查找什么以及需要批量替换成什么。
如果我们需要将 Word 文件中的文本内容「ABC」 批量修改替换为「我的ABC」,那么可以这样设置:
设置完后直接点保存按钮,然后一直下一步就可以了。
查找类型说明
精确文本
精确文本是指我们输入的文本就是软件需要查找的内容,比如我在软件上填的查找内容为「ABC」,那么软件在批量查找 Word 文件时,如果该 Word 文件中确实存在「ABC」这个文本,那么就表示查找成功。换一句话说,这个查找类型不支持通配符。
模糊文本
模糊文本查找和我们平常说的「通配符」是一个意思,软件中使用的是「正则表达式」作为通配符的语法,和我们日常理解的「通配符」的语法差异很大,需要学习一下。
批量精确文本
只需要添加一条规则,同时精确查找和修改替换多个关键字
批量模糊文本
只需要添加一条规则,同时模糊查找和修改替换多个关键字
-
WordSR 在多个Word文件中批量查找替换
2011-04-30 12:24:17WordSR 在多个Word文件中批量查找替换 版本 0.1 版权所有(C) 2011 lzy0168@gmail.com 保留所有权利 此程序为免费软件,仅为使用目的发布,而无任何担保 暂时在 windows 7 安装有 word 2007 的环境下测试通过,... -
Word文档批量替换工具.doc
2019-07-01 11:05:30VBA做的工具,将需要替换的文字输入到表格中,然后一键完成多个文件的替换。特别适合一些格式化文件,比如合同、产品说明、ISO标准化文档(质量手册、程序文件、管理手册)、项目推广方案等,先做批量替换,再进行... -
excel&word批量替换vba代码
2014-06-29 13:25:28需频繁批量替换文档的可以试试,可选定待替换文件夹,替换doc,xls文档,一次性替换多个字符串 -
poi word2010替换文字 图片 表格
2013-08-27 16:50:30绝对好用的word操作 poi word2010替换文字 图片 表格 -
JS调用word的模板 替换文字图片 设置图片大小
2018-05-10 16:49:37找了好久才调试成功,主要是导入图片设置图片尺寸比较麻烦,设置文字的demo比较多,但是很少有涉及到图片的demo ,好不容易找了一个分享一下 -
WORD页眉批量替换软件 奈末Word批量替换助手 v8.7
2020-12-15 05:25:17奈末Office批量转PDF助手,能快速性将多个Word,Excel,PowerPoint文档批量转换成pdf文件,无需打开文件即可转换,可选择MS OFFICE或WPS。软件简单易用,绿色软件,解压即可用,无需安装,同时 -
word批量查找替换(支持页眉页脚+空行处理).docm
2019-05-17 23:00:50批量修改word文档 数据,不限文档数量 -
批量修改WORD内容 文件夹word中文字批量替换
2012-07-11 23:54:41可以轻松地将某文件夹下的所有WORD文档中的某个字符串全部替换为其他字符串。下面是具体操作步骤。 -
VC利用WORD替换功能打印发票
2021-02-08 00:30:19在word中做好一个发票模板,然后将那些需要动态改的文字设成特定的标志,在VC中用word的替换功能将其替换,这样可以省去很多的麻烦,简化操作。这样一来,发票的格式,文字位置就可以简单地通过改变WORD模板的设计而... -
批量替换word文档文字工具
2019-04-17 10:43:26批量替换word文档文字工具,绿色免安装,无需注册码,直接运行 -
Word文档批量替换工具
2019-07-01 11:25:01作者:iamlaosong 日常工作中可能会碰到这样的情况,就是需要批量替换一些文件的内容,如合同、产品说明、ISO认证...工具用VBA实现,主要是针对ISO认证标准化文档做的,即对多个文件做同样的替换。界面如下: ... -
word文档模板-使用poi技术替换文档中的变量
2017-10-31 15:29:03给出Java-poi导出Word时,所需的Word模板。 注意:1,word模板中的表格单元格只能有唯一的变量。(如需多个变量,可以在word中隐藏表格来实现。) 2,word模板中变量前后不能有空格。 -
利用VBA批量替换多个Word内容(带窗体界面/支持备份、大小写、通配符等功能)
2020-03-14 18:41:27背景:朋友工作中有多个Word文件,每次做更新时都要更新文档内的日期,每次手工更改都比较耗费时间,加上公司电脑不能装未授权的软件,且只支持英文,于是就根据这个需求,参考一些网上的代码,并做了一些升级,增加...