6

我现在很困惑。基于我可以使用 Win32 COM 替换 word 文档中的文本吗?我能够编写一个简单的模板系统,该系统从模板 word doc(在 Python 中)生成 word docs。

我的问题是“文本字段”中的文本不是这样找到的。即使在 Word 本身中,也没有搜索所有内容的选项 - 您实际上必须在“主文档”和“文本字段”之间进行选择。作为 Windows 世界的新手,我尝试浏览 VBA 文档,但没有找到任何帮助(可能是因为“文本字段”是一个非常常见的术语)。

word.Documents.Open(f)
wdFindContinue = 1
wdReplaceAll = 2
find_str = '\{\{(*)\}\}'
find = word.Selection.Find

find.Execute(find_str, False, False, True, False, False, \
True, wdFindContinue, False, False, False)

while find.Found:
    t = word.Selection.Text.__str__()
    r = process_placeholder(t, answer_data, question_data)

    if type(r) == dict:
        errors.append(r)
    else:
        find.Execute(t, False, True, False, False, False, \
        True, False, False, r, wdReplaceAll)

这是我的代码的相关部分。我现在能够自己解决所有问题(提示:如果你想用超过 256 个字符替换字符串,你必须通过剪贴板等来完成......)

4

1 回答 1

2

也许您可以使用使用UNO组件技术的 OpenOffice API 。使用Python-UNO 桥,您可以连接到以无头模式运行的 OpenOffice 实例。查看教程以开始使用。 这对于您的场景来说可能有点过头了,但它是一个非常强大且灵活的解决方案。

于 2010-05-17T21:35:49.203 回答