【发布时间】:2009-10-13 22:04:38
【问题描述】:
我在网上看到很多关于 VSTO 和从 c# 自动化 excel 的内容,但很少开始连接 c# 程序集以使其在 Excel 中可见。
谁能告诉我一些非常基本的信息来解释如何创建 COM 接口、GUIDS、ComVisible 等?
【问题讨论】:
标签: c# excel com com-interop
我在网上看到很多关于 VSTO 和从 c# 自动化 excel 的内容,但很少开始连接 c# 程序集以使其在 Excel 中可见。
谁能告诉我一些非常基本的信息来解释如何创建 COM 接口、GUIDS、ComVisible 等?
【问题讨论】:
标签: c# excel com com-interop
基本上你需要做的就是
regasm.exe 工具注册 DLL此外,请确保在“程序集版本信息”对话框中的应用程序名称和描述中都添加描述性名称(它们稍后用于选择 COM 类)。
[1] 在类定义之前添加的代码块:
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("SomeNameHere")]
[ComVisible(true)]
[Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")]
之后,您应该能够像使用任何其他普通 COM 类一样使用该类。
编辑
应该注意的是,我没有使用 Excel 和 C# COM 类的经验 - 我将 C# 与 Microsoft Navision 一起使用,效果很好如上所述。
【讨论】:
那里有很多书可以让你继续前进。 Wrox 的“Pro C# 2008”对此有一个很好的章节。
另外,这是一篇关于 COM Visible to Excel 的MSDN blog 文章。
【讨论】:
与其走 COM 路线,不如使用ExcelDNA 之类的东西更容易(而且安装问题更少)。它允许您在 .Net 中编写不需要注册的 XLL。它也是开源的并且得到了很好的社区支持。
【讨论】: