我正在使用DotNetCore.NPOI软件包在NetCore上使用NPOI读取Excel文件。
文件由带有文本列,一些数字列和公式列的一些行组成。问题是我可以检索所有信息,但公式列的结果始终为0。用Excel打开文件时,我看到公式填充在其单元格中。
我有一个ExcelReader类,它具有以下用于读取单元格值的方法:
private object GetCellValue(ICell cell)
{
if (cell == null)
{
return null;
}
switch (cell.CellType)
{
case CellType.Boolean:
return cell.BooleanCellValue;
case CellType.Numeric:
return cell.NumericCellValue;
case CellType.String:
return cell.StringCellValue;
case CellType.Blank:
return null;
case CellType.Error:
return null;
case CellType.Formula:
object result = null;
var newCell = formulaEval.Evaluate(cell);
switch(newCell.CellType)
{
case CellType.Numeric:
result = newCell.NumberValue;
break;
case CellType.String:
result = newCell.StringValue;
break;
}
return result;
case CellType.Unknown:
return null;
default:
return null;
}
}
formulaEval这是工作簿的HSSFFormulaEvaluator评估程序。我正在尝试评估公式,而不影响单元格中的值,但是它仍然无法正常工作。
该文件受用户保护。这可能是问题吗?有类似问题的人吗?