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,插件会自动加载
我想使用 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,插件会自动加载