添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

这里我们使用 python-docx 库, 关于这个库的使用可以参考官方文档

  • 第一种:如果不在乎原有文章的格式,比如把word文档里的 需要替换的字符串 替换成 我是替换后的字符串 可以使用以下代码
      doc = docx.Document('test.docx')
      for paragraph in doc.paragraphs:
          if '需要替换的字符串' in p.text:
              p.text = p.text.replace('需要替换的字符串', '我是替换后的字符串')
      doc.save('result_test.docx')
    
    这种替换方式有个问题就是,不能保持原有的格式, 比如 需要替换的字符串 是带下划线并、加粗、黑体,替换之后这些格式都不存在了,但这也是最简单部分的替换方式。
  • 第二种: 既然第一种有问题,那么我们想要保持原有的文档格式,怎么办?我们只能更改里面的文字块,再python-docx库中文字块叫run,特殊就是这个run并不是我们我们想象的那样是连续的,这里盗了个图,这里感谢 这位博主 的图。
    在这里插入图片描述

从图中可以看出,run是paragraph的最小单元,所以待会儿取得时候我们只能拿到段落我们才能找到run,再说run得特殊性, 比如 需要替换的字符串 这几个字可能是多个run, 可能是两个run,分别是’需要替换的’, ‘字符串’。直接上代码:

doc = docx.Document('my_template.docx')
for paragraph in doc.paragraphs:
    tmp = ''
    runs = paragraph.runs
    for i, run in enumerate(runs):
        tmp += run.text # 合并run字符串
        if '需要替换的字符串' in tmp:
            # 如果存在匹配得字符串,那么将当前得run替换成合并后得字符串
            run.text = run.text.replace(run.text, tmp)
            run.text = run.text.replace('需要替换的字符串', '我是替换后的字符串')
            tmp = ''
        else:
            # 如果没匹配到目标字符串则把当前run置空
            run.text = run.text.replace(run.text, '')
        if i == len(runs) - 1:
            # 如果是当前段落一直没有符合规则得字符串直接将当前run替换为tmp
            run.text = run.text.replace(run.text, tmp)

以上就是两种替换方式,可以看需求使用

Python把excel中的内容批量替换word中 需要把excel里表格的数据复制到word文档中,比如excel中的公司名称,联系人等,所以就为了减少经常处理这些文档,故通过程序减少这些工作量, 1.excel不能合并单元格 2.excel表头必须是第一行,并且不能为空 3.excel中第一列的数据作为导出word文件名,或者在表头定义【文件名】列 4.word只支持.docx,excel只支持.xls/.xlsx 格式 5.word模板占位符格式:{xxx},xxx:是excel中表头列的名字 图片来源于网络♚作者:贠云龙Blog:zhihu.com/people/yunlongyun本文主要讲解python中操作word的思路。一、Hello,world!使用win32com需要安装pypiwin32pipinstallpypiwin32推荐使用python的IDLE,交互方便1、如何新建文档fromwin32com.clientimportDispatchapp... 写这个代码,完全是因为交作业的时候要一个人交六份,一个一个的替换里面的内容太慢而且繁琐。(十分痛苦)为了以后交作业方便,用python实现了,只要一个人作业写好,直接替换名字和学号并保存。(非常好用)一个简单的代码,为啥我之前没写啊!!!这都快毕业了!!!!!😢😢😢python-docx是一个处理word文档Python第三方库,它支持读取、查询以及修改doc、docx等格式文件,并能够对word常见样式进行编程设置,包括字符样式、段落样式、表格样式、页面样式等,进一步可以使用这个库实现添加和修改文... 1)获取原word文档内容。参考代码:doc = docx.Document(src_docx_file); 2)修改doc的内容; 3)新建一个word文档,用doc的内容进行填充。 ​ 前不久,一个学友向我咨询利用Python操作Word文档的一些问题。例如,批量替换Word文档中的文字。通过学习,我解决了这个问题。现与大家分享如下:操作系统:W in10语言:Python3.9。 之前写了一个python脚本,用于姜数据库中的数据批量写入到word模板中,生成很多份报告。 但是模板并不是万能的,有时候会因为某个填充的数据为空导致那句话没有用,需要删掉或者微调。 Python自动化处理Word文档的功能可以应用于许多场景,以下是其中一些常见的应用场景:批量处理文档:如果您需要处理大量的Word文档,例如替换文本、添加文本、修改格式等,手动完成这些任务将非常耗时和繁琐。使用Python自动化处理Word文档,可以轻松地处理大量文档,提高效率。数据清洗和分析:在数据分析中,经常需要将数据从不同的来源合并到一个数据集中。如果这些数据来源是Word文档使用Python自动化处理Word文档可以帮助您更轻松地提取和清洗数据。