You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS Office Add-in与VSTO Add-in的通信实现方案咨询

实现COM/VSTO Office Add-in与JS API Office Add-in的本地通信方案

以下是无需搭建复杂后端架构的可行方案,适配你的需求——用JS Add-in实现UI和跨平台扩展,依托VSTO处理专属功能:

方案1:Office文档自定义属性/设置项作为消息载体

  • VSTO端:通过Document.CustomProperties(对应Word/Excel等Office文档对象)写入键值对,存储形状类型等需要传递的数据
  • JS Add-in端:通过Office.context.document.settings.get()轮询读取指定键的值,处理完成后可写入另一组键值对回复VSTO
  • 优势:完全基于Office原生对象模型,无额外依赖
  • 局限:轮询存在延迟,不适合高频通信;数据长度受自定义属性限制

方案2:VSTO注册自定义命令,JS Add-in直接调用

  • VSTO端:在Office应用中注册自定义Ribbon命令或自动化函数,绑定处理逻辑接收JS传递的参数,执行形状访问等操作后返回结果
  • JS Add-in端:通过Office.context.ui.executeFunctionAsync()调用VSTO注册的自定义函数,传递请求参数并获取返回值
  • 优势:调用链路直接,响应速度快
  • 局限:仅支持Windows平台(VSTO本身为Windows专属),跨平台场景无法使用

方案3:Windows平台下的命名管道通信

  • VSTO端:创建并监听本地命名管道,处理JS Add-in的连接请求与消息
  • JS Add-in端:借助Office内置的WebView2环境,通过window.chrome.webview.postMessage结合Win32 API与命名管道交互(或配置允许Node.js后使用net模块)
  • 优势:支持高频、低延迟的通信场景
  • 局限:仅适用于Windows平台,需处理管道连接异常等情况

方案4:自定义任务窗格双向消息传递

  • 若让VSTO创建包含JS Add-in页面的自定义任务窗格:
    • VSTO端:通过WebView的InvokeScriptAsync方法调用JS函数传递数据
    • JS Add-in端:通过window.external.notify向VSTO宿主发送消息,VSTO监听对应事件接收
  • 优势:通信直接,适配UI交互场景
  • 局限:需要VSTO负责任务窗格的创建,JS Add-in的部署逻辑需调整

如果优先轻量化实现,方案1和方案2是最适合的选择,无需额外服务即可满足JS UI与VSTO专属功能的协作需求。

内容的提问来源于stack exchange,提问作者Nhyzek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:45:03