我有一个对象模型,我需要用户能够在此基础上创建一个公式,并使用一些内置函数。例如:
AddWorkDays(MyObject.StartDate, 3)MyObject具有用户可以访问的各种属性。我们还可能需要做一些If/ also语句。用户非常熟悉Excel公式,因为这是他们目前的工作方式。
我认为有两种可能的选择:
选项1的问题是我不想重新发明轮子。我希望有人已经构建了一个解析器,它可以处理基本函数和数学操作,并且能够根据传入的类(Es)来感知上下文。我好像找不到这样的东西。
选项2将允许用户重用他们现有的Excel知识来构建如下公式:
=if(MyObject.Type = "A", AddWorkDays(MyObject.StartDate, 3), AddWorkDays(MyObject.StartDate, 5)我认为XLParser在解析Excel公式方面非常出色,但我似乎需要在上下文感知部分中添加用于读取和验证MyObject上属性的部分。
欢迎任何有关如何进行的经验、例子、警告等。
发布于 2019-12-06 10:01:44
我使用the库解决了这个问题:https://github.com/mparlak/Flee
它支持“上下文”,您可以在其中定义应该在上下文中的变量。它支持常规语法,例如加法、减法,甚至是基本的IF语句。添加自己的函数很容易扩展。我通过定义一些常见的函数使其类似于Excel:以及,OR,MIN,MAX。这是一个不足100行的代码。
我使用它来处理相对较大的数据集(每项有5个公式的200,000项),如果正确使用,它将在10秒内处理。
https://stackoverflow.com/questions/55234198
复制相似问题