【问题标题】:com interop: how to consume c# from Excel or Accesscom 互操作:如何从 Excel 或 Access 使用 c#
【发布时间】:2009-10-13 22:04:38
【问题描述】:

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

谁能告诉我一些非常基本的信息来解释如何创建 COM 接口、GUIDS、ComVisible 等?

【问题讨论】:

    标签: c# excel com com-interop


    【解决方案1】:

    基本上你需要做的就是

    1. 使用项目属性“程序集版本信息”对话框中的相应属性使程序集 COM 可见
    2. 对于每个公共类,在类定义上方添加以下代码块(参见 [1])
    3. 使用 .NET 2 安装文件夹中的 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 一起使用,效果很好如上所述。

    【讨论】:

      【解决方案2】:

      那里有很多书可以让你继续前进。 Wrox 的“Pro C# 2008”对此有一个很好的章节。

      另外,这是一篇关于 COM Visible to Excel 的MSDN blog 文章。

      【讨论】:

        【解决方案3】:

        与其走 COM 路线,不如使用ExcelDNA 之类的东西更容易(而且安装问题更少)。它允许您在 .Net 中编写不需要注册的 XLL。它也是开源的并且得到了很好的社区支持。

        【讨论】:

          猜你喜欢
          • 2010-10-02
          • 2011-04-03
          • 2010-12-14
          • 2015-08-03
          • 1970-01-01
          • 2010-11-20
          • 2016-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多