精华内容
下载资源
问答
  • 批量替换多个word内容
    千次阅读
    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文档中批量查找替换时,此宏可帮助遍历整个目录下的所有doc和docx格式的word文件并批量进行替换保存操作,大大提高工作效率。 此文档是一个WORD的VBA宏,不存在病毒也无需注册收费。且除了需要打开...
  • 其实我们依然是需要对Word文档进行替换。...设置好我们需要替换的规则之后就可以点击下一步进行输出目录的选择了,然后我们继续下一步,交给我们帮我们进行同时对多个Word内容进行批量替换的操作。...

    概要:Word 类型的文档在我们办公过程当中经常会碰到,比如说各种合同、标书等等都是会先用 Word 进行编辑的。往往这类的 Word 文件数量会非常的庞大,并且内容也非常的多,非常的复杂。有时候我们可能一个小的疏忽就导致多个 Word 文档的内容出现错误,比如说年份、版本号等等信息的错误。这时候我们就需要对大量的 Word 文档进行批量修改或者批量替换的操作了。

    可能大家平时处理的都只是单个 Word 的文档的查找与替换,所以大家最熟悉的方式就是按【ctrl+f】快捷键,然后对我们想要修改的 Word 进行快捷的查找替换。这种方式只适用于单个文件处理的场景,当我们文件数量非常的庞大的时候,我们是不能再通过一个文件一个文件的按快捷键的方式去对 Word 文件进行修改的了。因为这种方式不是批量处理,处理起来效率会非常的低下。那我们如何同时对多个 Word 的内容进行批量替换呢?

    其实我们依然是需要对 Word 文档进行替换。只不过我们需要的是一种更快捷、更高效的方式来替代我们手工处理,能够实现批量对 Word 的内容进行批量替换。今天就给大家介绍一种非常高效、非常简单的方式。能够实现同时对多个 Word 的内容进行批量替换,操作起来是非常简单的,基本上不需要任何的教程都能够自己去摸索出来了。那我们接下来就一起来看一下是什么样的一种方式能够实现同时给几百上千甚至上万个 Word 文档的内容进行批量替换的吧。

    我们打开「我的ABC软件工具箱」,按下图所示,左侧选择「文件内容」,右侧选择「按规则查找并替换文件内容」的功能。

    想要实现同时对多个 Word 的内容进行批量替换,我们第一步就是点击上图的按钮进入功能内部。进入之后就可以将我们要进行批量替换的多个 Word 文档全部导入到软件中。文件导入完成后我们就可以点击下一步进入到设置替换规则的界面了。

    我们注意一下界面【查找类型】这个选项有四个,每一个都有对应的应用场景,这四个查找类型基本上能实现我们平常用到的几乎所有替换的场景了。

    我们先来一个最简单的,比如我们要将所有 Word 文档中的年份进行替换,将【2021年】替换为【2022年】,那我们只需要按照上图进行选择和输入就可以了。

    设置好我们需要替换的规则之后就可以点击下一步进行输出目录的选择了,然后我们继续下一步,交给我们帮我们进行同时对多个 Word 的内容进行批量替换的操作。一会儿,所有 Word 文档中的【2021年】就都被替换为【2022年】了,是不是非常的简单呢?如果大家想要替换其他的内容,是不是也知道该怎么样去设置对应的规则了呢?  

    展开全文
  • 批量替换多个word指定文字

    千次阅读 热门讨论 2022-04-27 11:29:16
    1、新建一个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.按照向导进行替换过程,等待弹出”全部替换完毕“后即可。

     

    展开全文
  • 批量替换多个word文档、多处内容、word中表格内容、小工具
  • 可以批量替换多个word excel 中文件内容,操作简单,本人偶尔使用没找到合适的所以自己写了一个,使用简单。
  • 背景:朋友工作中有多个Word文件,每次做更新时都要更新文档内的日期,每次手工更改都比较耗费时间,加上公司电脑不能装未授权的软件,且只支持英文,于是就根据这个需求,参考一些网上的代码,并做了一些升级,增加...

    背景:朋友工作中有多个Word文件,每次做更新时都要更新文档内的日期,每次手工更改都比较耗费时间,加上公司电脑不能装未授权的软件,且只支持英文,于是就根据这个需求,参考一些网上的代码,并做了一些升级,增加了界面、备份等功能,制作出这个VBA。下面是几个主要部分的VBA代码。

    图1 VBA结构图

    VBA结构图

    图2 窗体界面

    窗体界面

    '窗体界面
    Private Sub CommandButton1_Click() 'Replace按钮
    Call Start_replace
    Unload Me
    End Sub
    
    Private Sub CommandButton2_Click() 'Clear按钮
    'CheckBox1.Value = False
    'CheckBox2.Value = False
    'CheckBox3.Value = False
    'CheckBox4.Value = False
    TextBox1.Value = ""
    TextBox2.Value = ""
    End Sub
    
    '调用窗体界面(模块1)
    Sub Replace_text()
    UserForm1.Show
    End Sub
    
    '开始替换(模块2)
    Public Sub Start_replace()
    Application.ScreenUpdating = False  '关闭屏幕闪
    Dim myFile$, myPath$, backup_file, Backup_path, i%, myDoc As Object, myBackup 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 & ""
    
    MatchCase_Value = UserForm1.CheckBox1.Value
    MatchWholeWord_Value = UserForm1.CheckBox2.Value
    MatchByte_Value = UserForm1.CheckBox3.Value
    MatchWildcards_Value = UserForm1.CheckBox4.Value
    Backup = UserForm1.CheckBox5.Value
    Be_replaced = UserForm1.TextBox1.Value
    Replace_with = UserForm1.TextBox2.Value
    
    txt = Be_replaced
    Re_txt = Replace_with
    myAPP.Visible = True '是否显示打开文档
    
    'Backup
    If (Backup = True) Then
        Backup_path = "E:\backup\"
        backup_file = Dir(myPath & "\*.doc*")
        Do While backup_file <> ""
            Set myBackup = myAPP.Documents.Open(myPath & "\" & backup_file)
            myBackup.SaveAs "E:\backup\" & backup_file
            myBackup.Close
            backup_file = Dir
        Loop
    End If
    
    'Replace
    myFile = Dir(myPath & "\*.doc*")
    Count = 0
    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 = MatchCase_Value
                .MatchWholeWord = MatchWholeWord_Value
                .MatchByte = MatchByte_Value
                .MatchWildcards = MatchWildcards_Value
                .MatchSoundsLike = False
                .MatchAllWordForms = False
                .Execute Replace:=2
            End With
        End If
        myDoc.Save
        myDoc.Close
        myFile = Dir
        Count = Count + 1
    Loop
    myAPP.Quit '关掉临时进程
    Application.ScreenUpdating = True
    If (Backup = True) Then
        MsgBox (Count & " documents replaced successfully and backup in " & Backup_path)
    ElseIf (Backup = False) Then
        MsgBox (Count & " documents replaced successfully!")
    End If
    End Sub
    
    
    图3 运行结果

    运行结果

    • 不足之处:目前还只能对一个文件夹里的全部word批量替换,不能进行选择;不能实时查看到匹配到内容,所以建议替换时将文件拷贝到临时文件夹再进行替换。(尽管有备份功能)
    • 本文Word下载地址

    链接:https://pan.baidu.com/s/1ZsrfjK3GY4cLOlkm-h12rQ
    提取码:mup5

    展开全文
  • 批量修改替换多个Word文档中同一内容的方法
  • VBA批量替换多个WORD文档中的内容.docx
  • 批量修改替换多个Word, 第二种方法, A,首先将需要批量替换的多个Word文档放在同一文件夹下面。  B,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。  C,在...
  • VBA做的工具,将需要替换的文字输入到表格中,然后一键完成多个文件的替换。特别适合一些格式化文件,比如合同、产品说明、ISO标准化文档(质量手册、程序文件、管理手册)、项目推广方案等,先做批量替换,再进行...
  • 批量替换word文字

    2018-08-11 11:53:12
    此工具用于批量替换多个word中指定的相同文字,省时省力
  • 1,可批量替换word中的指定内容 ,亲测,实用。 ps:目录的深度超过3级后,有时替换不了。
  • word多个文档替换内容

    万次阅读 多人点赞 2018-09-05 14:51:57
    替换文件夹下所有文档的内容,需要替换的文档不能打开,采用宏进行批量替换,亲测成功,测试是word2016 根据简书作者改编https://www.jianshu.com/p/9d348b8015b6?utm_campaign=maleskine&amp;utm_content=note...
  • 奈末Office批量转PDF助手,能快速性将多个Word,Excel,PowerPoint文档批量转换成pdf文件,无需打开文件即可转换,可选择MS OFFICE或WPS。软件简单易用,绿色软件,解压即可用,无需安装,同时
  • 可以轻松地将某文件夹下的所有WORD文档中的某个字符串全部替换为其他字符串。下面是具体操作步骤。
  • 替换文档关键词 def replace_word(self, doc, before_words, after_words): '''此函数用于批量替换合同中需要替换的信息 doc:文件 old_info和new_info:原文字和需要替换的新文字 ''' # 读取段落中的所有run,找到需...
  • 概要:「我的ABC软件工具箱」支持批量查找 Word 文件中的关键字,并进行批量修改替换这些关键字。同时也支持批量查找修改替换 PPT 文件、Excel 文件、PDF 文件和文本文件(如:记事本 TXT、HTML、XML 等),我们可以...
  • 此处介绍一下如何使用Python批量替换多个Word文件中的文字,即将“商贸”替换为“贸易”。我们先去到Word文件中,查找一下“商贸”这个词出现了多少次。下图可见,运气不错,只出现了两次,一次在正文的段...
  •  第一,首先将需要批量替换多个Word文档放在同一文件夹下面。  第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。  第三,在控件工具箱上单击“命令按钮”...
  • #同时修改好几个word文档,转换特定的内容 import re import docx doc1=docx.Document('example.docx') spam=['后勤','技术','行政'] for j in spam:  doc2=docx.Document()  for i in range(0,len(doc1....
  • 今天小编就为大家分享一篇python实现替换word中的关键文字(使用通配符),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Word批量替换所有内容 最近在修改Paper,发现一很致命的问题就是,word使用的及其不协调不熟练,前二十多年玩的电脑都玩得什么玩意儿啊,真的是,唉。 发现有符号写错了,需要替换,然而需要修改的地方又很。...
  • python 替换docx文档中内容
  • 概要:在处理多个 Word 文件的时候,很多 Word 文件都包含了软换行符和硬换行符,也就是我们常说的软回车。有没有一种简单的方法能够统一软回车与硬回车呢?现在给大家介绍一种简单的方法,去批量的将所有的软回车符...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,511
精华内容 5,404
关键字:

批量替换多个word内容