Excel 使用 COM 库进行加载项开发

Excel add-in development by using COM library

我想使用 Visual Studio 2015 创建一个 Excel 加载项,有一个选项,那就是 VSTO。同时,由于某些原因,我需要使用 COM 库而不是 VSTO 来创建它。

我发现在低版本的VS(比如VS2008)中有一个名为Shared Add-In的项目模板,跟着这个可以创建一个office add-in,但是好像在a中去掉了更高版本的VS。至少,我在 VS2015 中找不到它。现在,我能做的只是在我的项目(Class 库)中添加一个 excel com 引用。我不知道接下来要做什么。

那么,如何在 VS2015 中使用 COM 库创建一个 Excel 加载项?有解决办法吗?

提前致谢。

最后,我通过一些调查解决了这个问题,大致按照这里列出的步骤,可以通过Excel COM库创建一个Excel add-in:

1) 创建一个 ClassLibrary 项目,然后将这两个引用添加到该项目:Extensibility (.NET assembly) 和 Microsoft Excel 16.0 Object Library (COM Component);

2) 添加一个class,并为其实现Extensibility中的接口IDTExtensibility2,我们可以在OnConnection方法中添加一些代码;

3)制作这个程序集COM-visible,在当前工程的属性windowselectApplication选项卡,点击Assembly Information按钮,勾选相应的项目;

4) 对程序集进行签名,在签名选项卡中,勾选“对程序集进行签名”,然后创建一个新的强名称密钥文件;

5) 为class添加Guid和ProgId属性,Guid的值可以在AssemblyInfo.cs中找到,ProgId对COM对象很重要;

6) 构建项目,并使用 regasm 工具使其对 COM 可见:regasm xxx.dll /codebase;

7) 打开注册表编辑器,定位到HKCU\Software\Microsoft\Office\Excel\Addins,创建一个新的子项,新的子项的名称需要与ProgId的值相同,然后添加以下三个值项:

  • 描述(字符串):<progid value or something else>

  • FriendlyName(字符串):<progid value or a friendly name for progid>

  • LoadBehavior (DWOWD): 3

8) 启动office,插件会自动加载