Python 通过 win32com.client 编辑word

本文介绍了如何使用Python的win32com模块来操作Microsoft Word,包括打开或创建文档、Find和Replace功能的详细用法,以及Selection对象的各种操作。通过实例展示了查找替换特定字符串、更改文本格式及获取光标位置的方法。此外,还提供了相关学习资源链接。
摘要由CSDN通过智能技术生成

一、导入模块和打开或创建Word

import win32com.client

word = win32com.client.Dispatch(‘Word.Application’) #打开word
word = win32com.client.DispatchEx(‘Word.Application’) #独立进程打开word

word.Visible = 0 # 后台运行
word.DisplayAlerts = 0 # 不显示,不警告

doc = word.Documents.Open('xxx.doc) # 打开一个已有的word文档
new_doc = word.Documents.Add() # 创建新的word文档

二、Find 和 Replace 的用法

基本函数

wordApp.Selection.Find.ClearFormatting()    #清除格式
wordApp.Selection.Find.Replacement.ClearFormatting()   #清除格式
word.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)

参数(OldStr–搜索的关键字,
True–区分大小写,
True–完全匹配的单词,并非单词中的部分(全字匹配),
True–使用通配符,
True–同音,
True–查找单词的各种形式,
True–向文档尾部搜索,
1,
True–带格式的文本,
NewStr–替换文本,
2–替换个数(0表示不替换,1表示只替换匹配到的第一个,2表示全部替换)

查找某字符并用新字符替代

    以下代码实现查找appliance 并进行替代,注意"^p"  是Word 中输入回车,另外“^l” 是换行

“\r\n” 也可以实现,但实际验证中,发现换行后前面多一个“口”空格

appliance_name ="appliance name "
appliance_address = "address "
appliance = appliance_name  +"^p" + appliance_address

Word.Selection.Find.Execute(
          "@Applicant@", False, False, False, False, False, True, 1, False, appliance, 2)


输出:
appliance name
appliance_address

查找某字符并改变其格式(包括字体颜色,大小,背景色等),并可以获取其光标位置

s=  Word.Selection
 if s.Find.Execute(appliance_name, False, False, False, False, False, True, 0, True, "",0):
      print(s.Range.Start)
      print(s.Range.End)
      s.Range.Font.Color = 255  # 替换文字颜色为红色
      s.Range.HighlightColorIndex  = 11 # 替换背景颜色为绿色


'''
wdAuto    0    Automatic color. Default; usually black.
wdBlack    1    Black color.
wdBlue    2    Blue color.
wdBrightGreen    4    Bright green color.
wdByAuthor    -1    Color defined by document author.
wdDarkBlue    9    Dark blue color.
wdDarkRed    13    Dark red color.
wdDarkYellow    14    Dark yellow color.
wdGray25    16    Shade 25 of gray color.
wdGray50    15    Shade 50 of gray color.
wdGreen    11    Green color.
wdNoHighlight    0    Removes highlighting that has been applied.
wdPink    5    Pink color.
wdRed    6    Red color.
wdTeal    10    Teal color.
wdTurquoise    3    Turquoise color.
wdViolet    12    Violet color.
wdWhite    8    White color.
wdYellow    7    Yellow color.
'''

三、Selection 的用法

# 使用Start,End指定字符范围
s = Word.Selection
s.Start = 0
s.End = n
# s从第0个字符(第1个字符前的插入点)到第n个字符。
# 汉字是每字为1字符

# 相当于按下Delete键
s.Delete() 
# 相当于按下Ctrl+A
s.WholeStory() 
# 向左移动
s.MoveLeft()
# 向右移动2个字符,第1个参数是移动单位WdUnits(具体见文档),1代表字符
s.MoveRight(1, 2)

 四、参考链接

入门介绍

https://www.bbsmax.com/A/mo5k01rMdw/

 https://www.likecs.com/show-370288.html

  https://blog.csdn.net/cyj282773731/article/details/122349802

Replace 字符超500 的处理方法 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值