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
我需要更新当前存储在多个 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