如何检测是否从OfficeJS安装了COM版本?



我们有一个现有的基于com的Excel插件,我们创建了一个基于js的插件,这样我们就可以为MAC用户提供类似的工具。JS插件工作得很好,但是当它被添加到PC上打开的文件中时,我们的COM和JS插件都将被加载,这有点令人困惑。

是否有一种方法可以让我们的JS插件"检测"是否也安装了特定的COM插件(所以我们可以禁用或隐藏JS插件,只留下COM插件)?

发现了这个类似的问题,但这是5年前的事了,不确定情况是否发生了变化。

Office JavaScript API (OfficeJS)不提供任何在运行时这样做的东西。但是,您可以在清单文件中指定等效的COM加载项,以防止在安装相应/指定的COM加载项时加载web加载项。以下是微软对此的解释:

在某些情况下,您的Office加载项可能无法提供相应COM加载项中可用的所有功能。在这些情况下,您的COM外接程序可能比相应的Office外接程序在Windows上提供更好的用户体验。

您可以配置您的Office加载项,以便当等效的COM加载项已经安装在用户的计算机上时,Windows上的Office运行COM加载项而不是Office加载项。COM外接程序称为"等效";因为Office将根据用户计算机上安装的插件在COM插件和Office插件之间无缝转换。

若要启用Office外接程序和COM外接程序之间的兼容性,请在Office外接程序的清单中标识等效的COM外接程序。然后Windows上的Office将使用COM加载项而不是Office加载项,如果它们都安装了的话。

下面的示例显示了清单中指定COM外接程序为等效外接程序的部分。ProgId元素的值标识COM外接程序,EquivalentAddins元素必须位于关闭的VersionOverrides标记之前。

<VersionOverrides>
...
<EquivalentAddins>
<EquivalentAddin>
<ProgId>YourCOMAddinProgID</ProgId>
<Type>COM</Type>
</EquivalentAddin>
</EquivalentAddins>
</VersionOverrides>

在使您的Office外接程序与现有COM外接程序兼容的文章中了解更多信息。

最新更新