前言

此处的“插件”,官方的翻译是“加载项”。一个是Addin, 一个是Plugin。

项目上需要实现一个Office/WPS都通用的插件,来实现业务系统与Office/WPS的联动。

那么实现Office/WPS的插件都有哪些方式呢?

Office插件的实现方式

COM

COM ( C omponent O bject M odel, 组件对象模型)是微软的一套软件组件的二进制接口标准。

Office插件就是一个实现了IDTExtensibility2和IRibbonExtensibility两个接口的COM组件。IDTExtensibility2提供了Office插件接口,IRibbonExtensibility提供了Ribbon界面接口。

VSTO

VSTO ( V isual S tudio T ools for O ffice) 是指Visual Studio 为 Office开发人员提供的一系统工具。

通过VSTO, 可以方便的创建Office插件。从本质上讲, VTSO也是使用的COM。它使用 COM 包装器 ( RCW ) 通过托管 API 与 Office 进行通信。

Web

基于较新版本的Office, 提供了基于Web技术的 Office加载项

COM 或 VSTO 加载项是旧 Office 集成解决方案,仅在 Windows 版 Office 上运行。与 COM 加载项不同,Office 加载项不涉及在用户设备或 Office 客户端中运行的代码。对于 Office 加载项,该应用程序(例如 Excel)会读取加载项清单,并挂钩 UI 中的加载项自定义功能区按钮和菜单命令。如果需要,它加载加载项的 JavaScript 和 HTML 代码,此代码在沙盒中的浏览器上下文范围内执行。

意思是Office内嵌了一个浏览器,自定义功能区中的按钮对应一个Web页面。页面与页面之间共享上下文,且提供了Office JavaScript API用来与Office进行通信。

WPS 插件的实现方式

复用 Office的COM插件

通过注册表的配置,WPS可以直接使用Office中COM实现的插件。

包括基于COM实现的插件以及VSTO实现的插件。

Web

Office加载项 类似, WPS也使用Web技术玩了一套插件机制。官方称为 WPS加载项

不能说大概一致,只能说一模一样。

WPS内嵌了一个Chromium 开源浏览器,自定义功能区中的按钮对应一个Web页面。页面与页面之间共享上下文,且提供了wpsjs用来与WPS进行通信。

为什么使用VSTO