首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用公式计算的用户友好方式

使用公式计算的用户友好方式
EN

Stack Overflow用户
提问于 2019-03-19 05:28:28
回答 1查看 179关注 0票数 0

我有一个对象模型,我需要用户能够在此基础上创建一个公式,并使用一些内置函数。例如:

代码语言:javascript
复制
AddWorkDays(MyObject.StartDate, 3)

MyObject具有用户可以访问的各种属性。我们还可能需要做一些If/ also语句。用户非常熟悉Excel公式,因为这是他们目前的工作方式。

我认为有两种可能的选择:

  1. 使用许多可用的C#库之一创建自己的解析器
  2. 调整基于Excel的解析器,以使上下文了解我的对象。

选项1的问题是我不想重新发明轮子。我希望有人已经构建了一个解析器,它可以处理基本函数和数学操作,并且能够根据传入的类(Es)来感知上下文。我好像找不到这样的东西。

选项2将允许用户重用他们现有的Excel知识来构建如下公式:

代码语言:javascript
复制
=if(MyObject.Type = "A", AddWorkDays(MyObject.StartDate, 3), AddWorkDays(MyObject.StartDate, 5)

我认为XLParser在解析Excel公式方面非常出色,但我似乎需要在上下文感知部分中添加用于读取和验证MyObject上属性的部分。

欢迎任何有关如何进行的经验、例子、警告等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 10:01:44

我使用the库解决了这个问题:https://github.com/mparlak/Flee

它支持“上下文”,您可以在其中定义应该在上下文中的变量。它支持常规语法,例如加法、减法,甚至是基本的IF语句。添加自己的函数很容易扩展。我通过定义一些常见的函数使其类似于Excel:以及,OR,MIN,MAX。这是一个不足100行的代码。

我使用它来处理相对较大的数据集(每项有5个公式的200,000项),如果正确使用,它将在10秒内处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55234198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档