环境 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)