Word Interop- 添加新的 autotext/building 块

Word Interop- Add new autotext/building block

我需要更新当前存储在多个 word 文档中的一堆值作为自动文本(或构建块),有太多需要手动完成所以我希望使用 Interop Word API.

var app = new Application();
var doc = app.Documents.Open(@"c:\path\to\file.dot");

遗憾的是,我看不到任何与 Word 中的自动文本功能相关的 Document 成员(插入 > 快速部件 > Building Blocks Organizer)。

API 是否公开了 'Building Blocks Organizer' 中 adding/updating 自动文本值的任何方式?

您需要做的是创建一个新文档并将模板附加到该文档,从我的头顶开始:

ActiveDocument.AttachedTemplate = @"C:\path\to\file.dot";

之后您可以像这样交互 AutoTextEntries(一个 VBA 示例,但我相信您可以自己快速将其重写为 C#)

Sub test()

    ActiveDocument.AttachedTemplate = @"C:\path\to\file.dot"

    For Each oAutoText In ActiveDocument.AttachedTemplate.AutoTextEntries
        MsgBox oAutoText.Value
        oAutoText.Value = Replace(oAutoText.Value, strOld, strNew)
    Next oAutoText

End Sub