首页 > 解决方案 > 如何解决 ClosedXML 中的“未找到匹配项”异常

问题描述

在使用 ClosedXML 计算 excel 后尝试读取单元格值时出现“未找到匹配项”异常。

我为读取该值而编写的代码是:

T value;

using (XLWorkbook wb = new XLWorkbook(excelPath))
{
    wb.CalculateMode = XLCalculateMode.Auto;
    wb.TryGetWorksheet(sheetname, out var worksheet);
    var result = worksheet.Cell(row, col);
    value = (T)result.Value;
}

return value;

异常消息是:未找到匹配项。

目标站点:在此处输入图像描述

堆栈跟踪:

   vid ClosedXML.Excel.CalcEngine.Functions.Lookup.Vlookup(List`1 p)
   vid ClosedXML.Excel.CalcEngine.Functions.Information.IsNa(List`1 p)
   vid ClosedXML.Excel.CalcEngine.Expression.op_Implicit(Expression x)
   vid ClosedXML.Excel.CalcEngine.Logical.If(List`1 p)
   vid ClosedXML.Excel.CalcEngine.Expression.op_Implicit(Expression x)
   vid ClosedXML.Excel.CalcEngine.BinaryExpression.Evaluate()
   vid ClosedXML.Excel.XLCell.RecalculateFormula(String fA1)
   vid ClosedXML.Excel.XLCell.Evaluate(Boolean force)
   vid ClosedXML.Excel.CalcEngine.CellRangeReference.GetValue(IXLCell cell)
   vid ClosedXML.Excel.CalcEngine.Expression.op_Implicit(Expression x)
   vid ClosedXML.Excel.CalcEngine.BinaryExpression.Evaluate()
   vid ClosedXML.Excel.XLCell.RecalculateFormula(String fA1)
   vid ClosedXML.Excel.XLCell.Evaluate(Boolean force)
   vid ClosedXML.Excel.XLCell.get_Value()
   vid ClosedXML.Excel.XLWorksheet.GetCellValue(Int32 ro, Int32 co)
   vid ClosedXML.Excel.XLRangeBase.<CellValues>d__61.MoveNext()
   vid ClosedXML.Excel.CalcEngine.CellRangeReference.<GetEnumerator>d__8.MoveNext()
   vid ClosedXML.Excel.CalcEngine.XObjectExpression.<GetEnumerator>d__5.MoveNext()
   vid ClosedXML.Excel.CalcEngine.Tally.Add(Expression e)
   vid ClosedXML.Excel.CalcEngine.MathTrig.Sum(List`1 p)
   vid ClosedXML.Excel.XLCell.RecalculateFormula(String fA1)
   vid ClosedXML.Excel.XLCell.Evaluate(Boolean force)
   vid ClosedXML.Excel.XLCell.get_Value()

所有的想法都得到了认可。

标签: excelclosedxmlclosedxml.report

解决方案


推荐阅读