【问题标题】:Access Document Stream from Office Ribbon Code从 Office 功能区代码访问文档流
【发布时间】:2025-11-28 17:30:01
【问题描述】:

我正在尝试为 Microsoft Word 2007 编写一个加载项。我想创建一个功能区按钮,当单击该按钮时,将获取当前或活动文档的 FileStream。我认为 Visual Studio Tools for Office 可以做到这一点。有没有人有任何示例代码可以展示如何做到这一点?

如果您有任何问题,请告诉我。谢谢

【问题讨论】:

    标签: ms-word vsto office-2007


    【解决方案1】:

    在功能区按钮代码上试试这个(用于文档级插件):

    string document = Globals.ThisDocument.Application.ActiveDocument.FullName;
    

    然后在MSDN上使用 FileStream.Read 的标准示例

    *如果存在未保存的更改,可能需要先提示或强制保存。

    【讨论】:

      【解决方案2】:

      另一种方法可能是使用 .WordOpenXML 获取打开文档的 XML 表示

      这将是当前状态(即包括未保存的更改)。

      【讨论】:

      • 那太棒了!我想知道 OpenXML SDK 是否可以将 XML 字符串传送到 .docx 容器中。
      • 如果你的意思是你想要获取 XML 字符串,嗯,'unmarshal'(对不起,Java 术语)它到 OpenXML SDK 对象,操作这些,然后转换回 XML 字符串重新- 插入到实时 Word 文档中,然后是的,这是可行的。