【问题标题】:How to pass data from word addin to host application如何将数据从 word 插件传递到主机应用程序
【发布时间】:2019-10-18 09:41:52
【问题描述】:

我正在研究单词 Addin。我的主机应用程序是一个 asp.net 网站,我将从该网站打开 word 文档,然后 word addin 将在那里侧载。我的要求是,在我打开文档后,我应该能够读取文档中的所有部分,然后在主机应用程序中传递部分名称,并在主机应用程序中使用我已读取的数据打开一个新的选项卡/弹出窗口。

我能够阅读部分内容,并且可以使用对话框 api 打开一个弹出窗口,但我想将上下文和数据传递给主机网站,而不是使用对话框 api 打开一个独立的弹出窗口。

有什么方法可以使用 office js 将数据和上下文从 word 文档传递到主机应用程序?

【问题讨论】:

  • 在讨论 Office 加载项时,“宿主应用程序”通常是指 Office 应用程序(Excel、Word、Outlook 等)。我不认为你以这种方式使用它。您能否澄清“主机应用程序”的含义?另外,你能分享一下你试过的代码吗?
  • @RickKirkham 我们有一个 .Net 网站,可以从中打开 word 文档。那是我们的主机应用程序。插件将在每个桌面本地安装,因此当我们从 .Net 网站打开 word 时,插件将旁加载。我们的查询是我们是否可以将应用程序的上下文传递给 AddIn,并且我们可以从 AddIn 将上下文传递给我们正在打开单词的应用程序吗?

标签: ms-word office-js word-addins


【解决方案1】:

如果插件公开了 Web API,您可以将所需的任何信息从插件传递到另一个 Web 应用程序,因此“从插件中我们可以将上下文传递给我们正在打开单词的应用程序”的答案是 是的

要将信息从您调用的主机 Web 应用程序传递到加载项,我认为您有两个选择。

  1. 加载项中有逻辑,加载后立即运行,调用 Web 应用程序以获取上下文数据。

  2. Web 应用程序使用 Open XML SDK 2.5 for Office 将上下文信息(作为自定义 XML 部件或自定义属性)添加到文档中,然后再为用户打开文档。加载项中有逻辑,加载后立即运行,读取此自定义 XML 或自定义属性。

【讨论】:

  • 感谢您的详细解释。是的,我的要求是将数据从我的应用程序传递到 AddIn。我可以在加载时编写逻辑并从应用程序后端获取数据。我所需要的只是将参数从应用程序传递给 AddIn。例如,当 userid1 打开单词时,我应该能够将 ID 1 传递给 addin,以便 addin 使用值 1 进行 api 调用。其他用户 ID 也是如此。在 VSTO 中,我们使用 Activex 进行上下文传递。
  • 您能分享一个示例代码/方法吗?我如何在加载之前将此参数(用户 ID)嵌入到文档中,以便在加载时使用正确的参数值调用 api 调用?
  • 您的应用如何知道用户的 ID?
  • 我可以完全控制我的应用程序,这里的用户 ID 是我在会话中维护的登录 ID,我只需将此登录 ID 传递给插件,以便我可以使用此登录 ID 从插件调用 api为该用户获取相关数据
  • 我认为你应该使用我的建议 #2。
猜你喜欢
  • 1970-01-01
  • 2021-09-26
  • 1970-01-01
  • 2019-11-25
  • 2014-05-23
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 2012-07-07
相关资源
最近更新 更多