首页 > 解决方案 > win32com (Python):将相同的超链接添加到 Microsoft Word 中相同文本的多个实例

问题描述

我在 Python 中使用 win32com 向文档添加超链接。在极少数情况下,一段文本会出现多次,因此需要多次超链接。我的理解.Hyperlinks.Add()是“懒惰”,并且仅超链接找到的第一个实例。我想知道是否有一种方法可以超链接所有实例,也许是通过动态移动范围,每个新范围从文本的最后一个实例结束的地方开始?或者也许有更简单的方法?我一直在使用的代码如下。谢谢你的帮助。

import win32com.client
from os import path

for link_text in hyperlink_dict:
        wordapp = win32com.client.Dispatch("Word.Application")
        wordapp.Documents.Open(os.path.join(save_folder, doc_version))
        doc = wordapp.ActiveDocument
        doc_range = doc.Range()
        docText = doc.Content.text

        if wordapp.Selection.Find.Execute(FindText=link_text) == True:
            doc_range.Hyperlinks.Add(Anchor=wordapp.Selection.Range, Address=hyperlink_dict[link_text])

标签: pythonwin32compython-docx

解决方案


推荐阅读