Excel公式到C#代码

我想将Excel电子表格转换为C#代码的一个组件。 为了得到它,我想通过互操作将包含正则表的所有单元格都放到c#中。 在c#模块中,我想用不同的值来解决定义的公式,取代了公式中的单元格引用。 有没有一个框架,我可以例如将“SUM($ C3:$ C5)”从excel转换为“var sum = c3 + c4 + c5;” 或semilar公式?

戈登

这是你会重复或只是一次?

我们使用www.spreadsheetgear.com来处理来自C#的Excel电子表格,它的工作原理非常奇妙。 我们的需求是不同的,所以你应该学习API来看看它是否允许你访问论坛的文本,但我认为它可能。

没有从属关系 – 只是一个满意的客户。

我想你正在C#中寻找一个expression式求值器。

Google发现了一些我认为你应该看的东西:

  • Codeplex上的快速轻量级expression式评估器 。
  • 关于CodePlex的ILCalc – “这个项目的灵感来源于FLEE项目,但是写法不同,更容易。”
  • NCalc是CodePlex上的另一个 – 评估自定义函数并使用Unicode,这可能对您很重要。 有一个相关的CodeProject文章 。
  • 有 Jonathan Wood 的这篇C#expression式评估文章 。
  • Spring.net框架中有一个。
  • Pascal Ganaye的CodeProject文章 。
  • 或者你也可以从Bart de Smet的DynCalc例子开始。

您可能还需要实现所有这些内置的Excel函数。 有一个图书馆的所有财务function在Luca Bolognese的F#中重新实现 – 在MSDN上find它。

比你需要更多的功率,但有一些运气,只需要一个薄的接口包装,以将数据从execl泵入公式引擎:

FormulaEngine是一个.NET程序集,使您可以将公式支持添加到您的应用程序。 它负责parsing和评估公式,跟踪它们的依赖关系,并按自然顺序重新计算。 公式语法和引擎的许多function都是Excel的直接副本,确保了用户的低学习曲线。

链接: FormulaEngine


更新:我最近开始了一个类似的python库: pycel

我不知道你的最终目标,但是在excel中编写一些VBA代码来计算你的公式,而不是强迫电子表格通过改变引用和值来计算东西,可能不是那么容易吗?

检查出ActiveMesa X2C ,这正是。 (免责声明:我是该产品的作者。)