我想将一个Excel电子表格转换为C#代码组件。为了实现这一目标,我希望使用Interop将包含公式的工作表中的所有单元格传输到C#中。在C#模块中,我想要使用不同的值替换公式中的单元格引用以解决定义的公式。是否有一个框架可以将Excel中的“SUM($C3:$C5)”转换为“var sum = c3 + c4 + c5;”或类似的公式?注意:请勿删除HTML标签。
我认为你正在寻找一个C#表达式求值器。
谷歌找到了一些我认为你应该看看的:
你可能还需要所有这些内置的Excel函数的实现。Luca Bolognese编写了一个包含所有金融函数的F#库 - 在MSDN上找到它。
比你需要的更强大,但只需要一个薄接口封装器就可以将数据从execl导入到公式引擎:
FormulaEngine是一个.NET程序集,使您能够为您的应用程序添加公式支持。它负责解析和计算公式,追踪其依赖关系,并按自然顺序重新计算。公式语法和引擎的大部分功能直接复制了Excel,确保用户的学习曲线较低。
更新:我最近开始了一个类似的Python库:pycel
看看 ActiveMesa X2C,它正是能做到这一点的。(免责声明:我是该产品的作者。)
这是您要重复做的事情还是只做一次?
我们正在使用www.spreadsheetgear.com从C#操作Excel电子表格,它的效果非常好。我们的需求不同,因此您应该研究API,看看它是否可以让您访问公式的文本,但我认为可能可以。
没有关联 - 只是一个满意的客户。