com interop:如何从Excel或Access中使用c#

时间:2009-10-13 13:19:29

标签: c# excel com com-interop

我在网上看到很多关于VSTO和c#自动化excel的信息,但很少开始连接c#程序集以使其从Excel中可见。

有人能指出一些非常基本的信息,解释如何创建COM接口,GUIDS,ComVisible等吗?

3 个答案:

答案 0 :(得分:2)

有很多书可以帮助你。 Wrox的“Pro C#2008”有一个很好的章节。

此外,这是一篇关于COM可见到Excel的MSDN blog文章。

答案 1 :(得分:2)

基本上你需要做的就是

  1. 使用项目属性“程序集版本信息”对话框中的相应属性使组件COM可见
  2. 对于每个公共类,在类定义
  3. 上面添加以下代码块(参见[1])
  4. 使用.NET 2安装文件夹中的regasm.exe工具
  5. 注册DLL

    此外,请确保在程序集版本信息对话框中为应用程序名称和描述添加描述性名称(它们稍后用于选择COM类)。

    [1]在类定义之前添加的代码块:

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("SomeNameHere")]
    [ComVisible(true)]
    [Guid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")]
    

    之后,你应该可以像任何其他正常的COM类一样使用该类。

    修改
    应该注意的是,我没有使用Excel和C#COM类的经验 - 我正在使用C#和Microsoft Navision,它的工作方式与我上面描述的方式相当。

答案 2 :(得分:1)

使用像ExcelDNA之类的东西,而不是沿着COM路线走下去,相当容易(而且安装问题少)。它允许您在.Net中编写不需要注册的XLL。它也是开源的,非常好的社区支持。