如何在使用Word.Interop时正确访问AtttachedTemplate?

时间:2017-12-02 12:03:02

标签: c# ms-word interop

我正在尝试使用Microsoft.Office.Interop.Word库从我的C#应用​​程序创建Microsoft Word文档。我使用模板文件来保存几个构建块并使用它们来构建文档:

using Word = Microsoft.Office.Interop.Word

Word.Application wdApplication = null;
dynamic wdDocument = null;

try {
  wdApplication = new Word.Application();
  wdDocument = wdApplication.Documents.Add(Properties.Settings.Default.Template);
  wdDocument.AttachedTemplate.BuildingBlockEntries("Agenda.Header").Insert(wdDocument.Paragraphs.Last().Range);
  // ...
} catch { }

这样一切正常。问题是因为我将wdDocument声明为dynamic我没有获得任何智能感知提示,否则会节省我很多时间和精力。

但是,当我尝试将wdDocument声明为Word.Document时,我收到以下错误:

  

错误CS1545属性,索引器或事件' _Document.AttachedTemplate'语言不支持;尝试直接调用访问器方法' _Document.get_AttachedTemplate()'或' _Document.set_AttachedTemplate(ref object)'

我也尝试将wdDocument声明为Microsoft.Office.Tools.Word.Document,但这只会在wdApplicationwdDocument之间引入类型转换错误。

声明文档类型或访问存储在附加模板中的构建块的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

非常感谢@mjwills让我走上正轨。这是我用构建块创建Word文档的最终代码:

{{1}}

请参阅MSDN上的这篇精彩文章以供参考:Retrieving Custom Building Blocks from Templates in Word 2007