使用NPOI读取Excel文件-缺少公式值

时间:2019-01-19 12:20:54

标签: c# excel .net-core npoi hssf

我正在使用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评估程序。我正在尝试评估公式,而不影响单元格中的值,但是它仍然无法正常工作。

该文件受用户保护。这可能是问题吗?有类似问题的人吗?

0 个答案:

没有答案