【问题标题】:Calculations in excel using .net使用 .net 在 excel 中进行计算
【发布时间】:2014-10-24 10:22:21
【问题描述】:

您好 Stackoverflow 用户

我最近被分配重写我公司经常使用的 Excel 文档。最初它是用 matlab 编写的,但为了更容易分发,他们将其迁移到 excel 中。它做得非常糟糕,因此它可以在某些计算机上运行,​​而不能在其他计算机上运行。于是改写成vba。但现在他们希望它能够进行非常复杂的计算,例如蒙特卡洛模拟。因此,出于性能和开发原因,我们希望用 c#.net 编写它。上周我尝试并尝试了解如何最好地完成它。我找到了几种可能的解决方案,但我还没有找到满足我的两个简单需求的单一方法:

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

  2. 按下按钮即可完成计算,因此我需要能够接收事件

我在网络上花了很多时间,但我不知道要搜索什么,所以这一切看起来就像一堵无法解释的复杂通信魔法墙。

那么你有什么建议呢?有没有满足这些需求的解决方案?任何建议、参考或任何其他帮助将不胜感激。

【问题讨论】:

  • 那么你的问题到底是什么?
  • 对不起,我希望这个问题现在更清楚了@n.Stenvang
  • 我可能只是不完全确定您要完成的工作,但我已经使用 word 和 excel 自动化工作了几个月,当您了解他们的对象时,这很容易模型。为什么不创建一个可以处理这些操作的表单?

标签: c# .net excel vba com


【解决方案1】:

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

从按钮单击接收事件只是将按钮控件添加到工作表并为其分配宏的情况。当您单击按钮时,此宏(例如 VBA 函数)将按需运行。

【讨论】:

  • 对不起,我很久没上stackoverflow了,所以我不太擅长提问。如果我必须使用dll也没关系,它只需要能够自动安装。但是您如何看待 VSTO,这是一个可能的解决方案吗?
  • 是的,VSTO 绝对是一个可行的解决方案。您可能想看看这个详细讨论利弊的问题:stackoverflow.com/questions/3840270/…
  • VSTO 没有为您提供构建可从工作表调用的 UDF 函数的好方法,而 Excel-DNA 非常适合使用 .NET 制作 UDF(和高级插件)。如果您可以将计算实现为 UDF 函数,则可以在熟悉的 Excel 环境中轻松灵活地使用它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多