【技术类-05】python实现docx段落文字加粗(Win32)

背景需求:

【技术类-04】python实现docx表格文字和段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”-CSDN博客文章浏览阅读1k次,点赞10次,收藏10次。【技术类-04】python实现docx表格文字和段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”https://blog.csdn.net/reasonsummer/article/details/136763487?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136763487%22%2C%22source%22%3A%22reasonsummer%22%7D

设计思路根据这位作者的利用Win32模块替换docx表格内文字加粗的方法,实现了段落文字加粗,不改变原格式。

Python:用【Win32】模块,结合Word通配符替换,将Word文档表格的部分内容替换为加粗_pywin32 word 查找加粗-CSDN博客文章浏览阅读600次。在Python中,如果需要对所有表格的某一部分进行修改,可以用【Win32】模块。文章主要说明如何结合Word通配符替换,将Word文档表格的冒号(含)之前的内容替换为加粗。_pywin32 word 查找加粗https://blog.csdn.net/qq_64613735/article/details/125552847素材准备:

所有的“中国人”加粗

'''
标题:测试docx段落文字中“中国人”加粗,不改变原来格式
作者:「VBA-守候」、阿夏:
时间:2024年3月19日 19:55
'''

from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
 
print('-----第2步:提取word路径-----')

path=r'C:\Users\jg2yXRZ\OneDrive\桌面\加粗\123.docx'
new=r'C:\Users\jg2yXRZ\OneDrive\桌面\加粗\234.docx'
print('------第3步:每一份word替换----')

#————————————————
# 版权声明:本文为CSDN博主「VBA-守候」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# 原文链接:https://blog.csdn.net/qq_64613735/article/details/125552847
# 部分参数修改

   
    
wdApp = EnsureDispatch("Word.Application")
# aDoc = wdApp.ActiveDocument # aDoc为当前文件
# wdApp.Visible = False # 程序设置为不可见
aDoc = wdApp.Documents.Open(path) # 打开已经存在的文件
old_word='中国人'
new_word=old_word
i = 0 
# 文档里有多个几个表格
for ta in aDoc.Paragraphs: # 遍历表格,如果无需遍历,直接将ta指定为某个表格即可,如这样指定为第一个表格:ta = aDoc.Tables(1)
    # f为每个表格区域查找
    f = ta.Range.Find

    # 查找框参数
    f.ClearFormatting() # 清除原有格式
    f.Forward = True # 向前查找
    f.Format = True # 查找格式
    f.Wrap = constants.wdFindStop # 查找完成即停止
    f.MatchWildcards = True # 使用通配符,根据需要设置
    # f.Text = '[!^13^l::]{1,}[::]' # 查找的内容  冒号前面的 [!^13^l::]    1代表z只要替换一次,[::]代表冒号。冒号前面包括冒号需要改成加粗
    # f.Text = '[{}]{2,}'.format(old_word) # 查找的内容  2代表2个字小结,如果1 ,就会吧“小”开头的字全部替换为小结加粗,,提问会变成两次重点提问.但是这种写法无法用format,
    for w in range(len(old_word)):
        f.Text = '{}'.format(old_word[w]) # 旧内容重点提问

        # 替换框参数
        f.Replacement.ClearFormatting() # 清除原有格式
        # f.Replacement.Text = '^&' # 替换框内容
        f.Replacement.Text = '{}'.format(new_word[w]) # 替换框内容
        f.Replacement.Font.Bold = True # 替换文本设置为加粗
        f.Execute(Replace=constants.wdReplaceAll) # 执行,查找全部
    i += 1

aDoc.SaveAs(new) # 保存并关闭文件,根据需要设置
aDoc.Close() # 保存并关闭文件,根据需要设置

print(f'完成,共替换了{i}个表格')

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 03:06:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 03:06:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 03:06:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 03:06:05       18 阅读

热门阅读

  1. XML语言的学习记录3-解析

    2024-03-20 03:06:05       19 阅读
  2. 简述从浏览器发出请求到数据返回的全过程

    2024-03-20 03:06:05       20 阅读
  3. UE5.1_自定义配置文件读取

    2024-03-20 03:06:05       19 阅读
  4. KMP算法

    2024-03-20 03:06:05       21 阅读
  5. 抽象类abstract

    2024-03-20 03:06:05       19 阅读
  6. 安达发|APS高级计划与排产软件在家具业的新趋势

    2024-03-20 03:06:05       21 阅读
  7. 02 Statement和PreparedStatement

    2024-03-20 03:06:05       19 阅读