【问题标题】:how to convert excel formula to List or somestrongtype如何将 excel 公式转换为 List 或 somestrongtype
【发布时间】:2019-12-24 10:53:16
【问题描述】:

有一个 excel 公式,例如:
=A2/B2*C2+D2

我希望调用类似的方法:

var formula = "=A2/B2*C2+D2";
var list = SomeMethod(formula);

并获取列表数据,如:

[0]:=
[1]:A2
[2]:/
[3]:B2
[4]:*
[5]:C2
[6]:+
[7]:D2

我已经尝试使用正则表达式有一段时间了,但我仍然不知道。

【问题讨论】:

  • 我已经更新了问题。 @SushantYelpale
  • 那么,这些公式还包含abssum等Excel方法?还是只有 +-= 这样的运算符?
  • 为此您需要Parser 来解析它
  • @SushantYelpale 首先感谢您的回答,C# 中有开源解析器还是我必须自己编写代码?
  • 查看我的编辑以回答

标签: c# excel


【解决方案1】:

使用Excel formula Parser 表示情况, 查看herehere

编辑

对于只有少数运算符+-/ 这样的简单用例,您可以使用以下版本,

string[] splits = Regex.Split("=A2/B2*C2+D2", @"(?<=[+-=*/])");

【讨论】:

  • 我使用github.com/spreadsheetlab/XLParser 来解析表达式。
  • 仅供参考,这仅适用于 +-= 实际上匹配从 + 到 = 的任何字符,其中恰好包括减号字符和数字 0-9。如果破折号被正确转义,这实际上会导致“=”、“A2/”、“B2*”、“C2+”和“D2”。它还将拆分为一堆其他字符,例如句点、冒号、分号和小于号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多