将Excel公式转换为C#代码

5
我想将一个Excel电子表格转换为C#代码组件。为了实现这一目标,我希望使用Interop将包含公式的工作表中的所有单元格传输到C#中。在C#模块中,我想要使用不同的值替换公式中的单元格引用以解决定义的公式。是否有一个框架可以将Excel中的“SUM($C3:$C5)”转换为“var sum = c3 + c4 + c5;”或类似的公式?注意:请勿删除HTML标签。
4个回答

6

我认为你正在寻找一个C#表达式求值器。

谷歌找到了一些我认为你应该看看的:

你可能还需要所有这些内置的Excel函数的实现。Luca Bolognese编写了一个包含所有金融函数的F#库 - 在MSDN上找到它。


1

比你需要的更强大,但只需要一个薄接口封装器就可以将数据从execl导入到公式引擎:

FormulaEngine是一个.NET程序集,使您能够为您的应用程序添加公式支持。它负责解析和计算公式,追踪其依赖关系,并按自然顺序重新计算。公式语法和引擎的大部分功能直接复制了Excel,确保用户的学习曲线较低。

链接:FormulaEngine


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


1

看看 ActiveMesa X2C,它正是能做到这一点的。(免责声明:我是该产品的作者。)


修复了URL。 - Dmitri Nesteruk
谢谢 - 更新后的链接看起来很好;我已经删除了早期的评论并取消了我的踩。 - Dan Parsonson

0

这是您要重复做的事情还是只做一次?

我们正在使用www.spreadsheetgear.com从C#操作Excel电子表格,它的效果非常好。我们的需求不同,因此您应该研究API,看看它是否可以让您访问公式的文本,但我认为可能可以。

没有关联 - 只是一个满意的客户。


从电子表格中获取公式并不是问题。这已经通过office-interop完成了。结果是以字符串格式呈现的公式。我想替换像“C22”之类的引用为另一个值,然后在没有Excel的情况下解决公式。由于我已经在c#代码中,因此我想在那里解决这个公式。 - Martin Hudasch
哦,我明白了,它可以计算给定的计算式。这可能是一个解决方案,但由于它不是免费的,我认为我不能使用它。但它确实能得出答案。 - Martin Hudasch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接