创建一个 VSTO Word 加载项,然后按 link 按钮打开一个文件

Create a VSTO Word Add-in, and link button press to open a file

我正在尝试创建一个 VSTO Word 加载项以在功能区中显示一些按钮,链接到存储在我们的文件服务器上的模板。

我通过 xml 文件将按钮添加到功能区。

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="ContentGroup" label="YP Council Templates">
          <button id="textButtonLetter" label="Letter"
               screentip="Letter" onAction="OnTextButton"
               supertip="Open the Letter Template."/>
          <button id="textButtonMemorandym" label="Memorandum"
               screentip="Memorandum" onAction="OnTextButton"
               supertip="Open the Memorandum Template."/>
          <button id="textButtonFacsimile" label="Facsimile"
               screentip="Facsimile" onAction="OnTextButton"
               supertip="Open the Facsimile Template."/>
          <button id="textButtonPolicy" label="Policy Template"
               screentip="Policy Template" onAction="OnTextButton"
               supertip="Open the Policy Template."/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

通过上面的代码,我已经成功地将按钮添加到一个组中,但我想知道如何创建打开Word模板文件的动作?是通过一个宏,如果是,宏到哪里去了? (注意 - onAction="OnTextButton" 代码是从我使用的示例中获取的)

最终目标是一旦打开模板文件(基于模板的新文档),他们就应该将其用作新文档的基础。

此致, 斯图尔特

使用 Word 时,不应打开模板文件。 (这通常意味着计划是使用 "save as" 来制作新文档 - 这充满了危险。)

Word 具有 Documents.Add() 方法来创建新文档作为模板文件的 "copy"。模板文件中的任何样板文件以及模板中定义的样式都被引入新文档。

如果这是一个真正的模板(*.dotx 或 *.dotm),文档会保留模板的活动 link,因此用户可以访问其中存储的内容:

  • 积木
  • 键盘快捷键
  • 功能区自定义

要从模板(或其他文档)生成新文档,请使用 Documents.Add 方法:

object missing = System.Type.Missing;
Globals.ThisAddin.Application.Documents.Add("pathToTemplateFile", ref missing, 
                                             ref missing, ref missing);

请注意,很少需要使用该方法的三个可选参数,但您应该在 Word 对象模型语言参考中查找它们,以便了解它们是什么。