自由屋推书网—热门的小说推荐平台!

你的位置: 首页 > 其他程序

Python对word中的指定书签进行替换其书签的文本内容

2022-05-12 11:42:20

环境 python3.7 版本
文档

from win32com import client

app = client.Dispatch('Word.Application')  # 启动独立进程
app.Visible = False # 设置是否可见, 如果为false, 则后台运行
word = app.Documents.Open(r'D:\a.docx')  # 打开word文档
bookmarks = word.BookMarks  # 获取所有书签

for i in bookmarks:
    print(i,i.range.text)

以上代码能读取到书签名及书签内的文本。

问题:

1. 如何将 bookmarks 遍历出的书签名写入一个列表?

#伪代码
list=[]
for i in booknarks:
    list.add(i)

2. 如何使用指定书签名获取到书签的文本?

例如 获取书签 a1 的内容

#伪代码
Text_a1=bookmarks.name("a1").text

3. 使用新的文本内容替换掉指定书签里的内容?

例如

#伪代码
bookmarks.name("a1").range.text="新的文本内容"

解决方案:

from win32com import client

app = client.Dispatch('Word.Application')  # 启动独立进程
app.Visible = False # 设置是否可见, 如果为false, 则后台运行
word = app.Documents.Open(r'D:\a.docx')  # 打开word文档
bookmarks = word.BookMarks  # 获取所有书签

# 1. 如何将 bookmarks 遍历出的书签名写入一个列表?
lst = [bookmark.Name for bookmark in bookmarks]
print(lst)

# 2. 如何使用指定书签名获取到书签的文本?
print(bookmarks('a1').range.text)

# 使用新的文本内容替换掉指定书签里的内容?
field_range = bookmarks('a1').range
field_range.text = "新的文本内容"
bookmarks.Add(Name='a1', Range=field_range)

print(bookmarks('a1').range.text)

 

编辑推荐

热门小说