我希望能够从 Excel 工作表中的单元格调用 VSTO 插件公开的函数。更具体地说,如果我有一个返回“bar”的 VSTO 函数 Foo(),我希望能够在 A1 中编写 =Foo(),其计算结果为“bar”。
这可能吗?我需要采取哪些关键步骤?
能够利用托管代码和 VS08 IDE 进行 excel 开发的前景非常有吸引力。我认为 VSTO 可以让我轻松做到这一点,但我不再确定。我误解了这里的架构吗?文档有点粗制滥造。
Excel-DNA(我开发的)是一个开源项目,如您所描述的,它允许您为 Excel 创建用户定义的工作表函数 (UDF)。
使用 Excel-DNA,您还可以制作功能齐全的 Excel 插件,包括功能区自定义、宏、异步功能和 RTD 服务器。Excel-DNA 使用原生 Excel XLL 接口与 Excel 集成,因此与基于 COM 集成的解决方案相比,您也可以获得非常好的性能。
我不相信您可以直接这样做,尽管您可以使用 VBA 包装器,例如参见http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx。
您还可以使用ManagedXll等第三方产品在托管代码中创建 Excel UDF。
我认为您可以使用 COM Interop .. 这是一个网页,我在其中看到了所描述的过程。