在Excel中使用.net进行计算

您好Stackoverflow用户

我最近被分配到重写我的公司使用了很多的Excel文档。 最初它是用matlab编写的,但为了更容易分发,他们把它迁移到excel。 它做得非常糟糕,因此它在一些电脑上工作,而不是在其他电脑上工作。 所以它被改写为vba。 但是现在他们希望能够进行非常复杂的计算,如蒙特卡洛模拟。 因此,为了性能和开发的原因,我们希望将其编写在c#.net中。 上周我已经尝试过,试图学习如何做得最好。 我发现了几个可能的解决scheme,但是我还没有find一个符合我的两个简单要求的方法:

  1. 用户不必去任何设置和添加一些东西,如果必须完成的话,它需要在代码中完成

  2. 计算是按下button完成的,所以我需要能够接收事件

我在网上花了很多时间,但是我不知道要search什么内容,所以看起来就像是一个无法解释的复杂的魔法墙。

那么你有什么build议? 有没有解决scheme可以满足这些要求? 任何build议,参考或任何其他帮助将深表感谢。

Excel本身不支持macros中的C#,所以你不能在独立的电子表格中满足你的第一个需求。 如果您愿意在Excel中安装附件,您可能需要考虑Excel-DNA 。 这将允许您编译一个包含要添加到Excel中的函数的.NET DLL。

从button点击接收事件只是将button控件添加到工作表上,并为其分配macros。 当你点击button时,这个macros(例如一个VBA函数)将按需运行。