如何使用Python 对 word中的指定书签进行替换其书签的文本内容(已解决)

环境 python3.7版本
文档

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

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)

如何使用Python 对 word中的指定书签进行替换其书签的文本内容
以上代码能读取到书签名及书签内的文本。

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

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

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

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

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

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

For your reference only

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)
1年前 评论
Jason990420 (作者) 1年前
hkflyman (楼主) 1年前
讨论数量: 3
Jason990420

For your reference only

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)
1年前 评论
Jason990420 (作者) 1年前
hkflyman (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!