【技术类-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}个表格')

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值