我有一个非常大的蒙特卡罗模拟器,模拟北美电网。它非常大并且需要一段时间才能运行,但最初是为了简单起见在Excel / VBA中完成的。
我现在想要将VBA代码移植到编译语言中以优化运行时。理想情况下,我希望将数据保留为电子表格格式,以便利用Excel的电子表格结构,因此代码将基本上转到电子表格,收集数据(即将大块信息读入数组)然后开始处理这些数据阵列。
是否有任何普遍接受的“最佳”方法来实现这一目标?例如,C#有一些像EPPlus这样的插件吗?十年前我习惯用C ++编写代码所以它已经有一段时间了,所以我将再次开始学习过程,并且只是想确保选择“正确”的路径(我确信有很多方法可以解决这个问题)项目,但我想他们中的大多数最终会像我刚刚在VBA中留下运行时代码一样好)
答案 0 :(得分:1)
作为一切,很多都取决于你当前的应用程序 - 即代码中有什么,工作簿有多大......等等等等。既然你在做蒙特卡洛,我想其中一个主要考虑因素就是速度。
您可以使用VSTO,这将允许您使用C#,但由于COM互操作,这将比VBA方法慢。 您可以在C#中编写代码并创建可能没问题的COM插件,但它仍然在进行COM互操作,可能会太慢。
根据您的情况,我认为我将被推向编码c ++插件的方向,这将比VBA快得多。 Google为此提供了很多参考资料。