1

我正在使用 ClosedXML 从用户提供的输入计算 excel 表中的值,并且在包含以下公式的单元格上出现错误

IF(C2=1,VLOOKUP(D7,A15:D28,4),(IF(C2=2,VLOOKUP(D7,A33:D46,4),VLOOKUP(D7,F15:I28,4))))

在线的:

lblResult.Text = worksheet.Cell("D8").Value;

你能帮我找出这里出了什么问题吗?

提前致谢

以下是堆栈跟踪堆栈跟踪:

[Exception: Syntax error.]
   ClosedXML.Excel.CalcEngine.CalcEngine.GetParameters() +223
   ClosedXML.Excel.CalcEngine.CalcEngine.ParseAtom() +141
   ClosedXML.Excel.CalcEngine.CalcEngine.ParseUnary() +77
   ClosedXML.Excel.CalcEngine.CalcEngine.ParsePower() +16
   ClosedXML.Excel.CalcEngine.CalcEngine.ParseMulDiv() +16
   ClosedXML.Excel.CalcEngine.CalcEngine.ParseAddSub() +16
   ClosedXML.Excel.CalcEngine.CalcEngine.ParseCompare() +16
   ClosedXML.Excel.CalcEngine.CalcEngine.Parse(String expression) +67
   ClosedXML.Excel.CalcEngine.ExpressionCache.get_Item(String expression) +140
   ClosedXML.Excel.CalcEngine.CalcEngine.Evaluate(String expression) +27
   ClosedXML.Excel.XLCell.get_Value() +411
   TestExcel.btnResult_Click(Object sender, EventArgs e) in f:\Projects\Generation Circuit\gencricuit\GenerationCircuit\TestExcel.aspx.cs:30
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628026
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724
4

2 回答 2

2

ClosedXML 不支持该VLOOKUP功能。

有关支持的功能列表,请参阅文档。

于 2014-11-24T12:10:53.603 回答
0

您可以使用 worksheet.Cell("D8").CachedValue 它将根据计算结果显示单元格中的值

于 2019-12-16T11:16:52.667 回答