我需要从Excel 2007中调用一些.NET代码,并且我正在寻找最佳方法。是否可以从Excel 2007中调用.NET代码?
官方的“Microsoft批准”方法似乎涉及Visual Studio 2008 Professional,但我没有。我有VS2005,但加上VSTO 2005 SE只能执行应用程序级别的加载项,而不是文档级别的宏。
该问题涉及一些分析代码,它们是.NET程序集;我想通过更改Excel工作表中的某些单元格来操作它。
还有其他想法吗?
我需要从Excel 2007中调用一些.NET代码,并且我正在寻找最佳方法。是否可以从Excel 2007中调用.NET代码?
官方的“Microsoft批准”方法似乎涉及Visual Studio 2008 Professional,但我没有。我有VS2005,但加上VSTO 2005 SE只能执行应用程序级别的加载项,而不是文档级别的宏。
该问题涉及一些分析代码,它们是.NET程序集;我想通过更改Excel工作表中的某些单元格来操作它。
还有其他想法吗?
你可以暴露你的.NET对象作为COM对象,然后从VBA调用它们...
最后的后在这个环节上有一些代码:
http://bytes.com/groups/ms-access/205532-calling-c-net-dll-vba
你可以(容易)从VBA调用任何COM组件;你也可以(不那么容易)调用其他的DLL等 - 甚至是系统DLL。
如果你为你的.NET DLL创建了一个COM包装器,你可以从VBA调用这些包装器。你可以使用VS2005来做到这一点,但涉及的工作量将取决于DLL的API的复杂性。
您可以使用Excel-DNA - 一个独立的开源项目将.NET集成到Excel中。它允许使用托管代码创建Excel加载项,包括高性能的用户定义函数。它只需要.NET 2.0或更高版本,所以你的VS 2005将会很好。
(声明:我是Excel-DNA的开发者。)