Чтение файла Excel с NPOI - пропущены значения формул - PullRequest
0 голосов
/ 19 января 2019

Я читаю файл Excel с NPOI в NetCore с пакетом DotNetCore.NPOI.

Файл состоит из нескольких строк с текстовыми столбцами, некоторых числовых столбцов и столбцов формул. Проблема в том, что я могу получить всю информацию, но результат из столбцов формул всегда равен 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. Я пытаюсь оценить формулу, не влияя на значение в ячейке, но она все еще не работает.

Файл защищен пользователем. Может ли это быть возможной проблемой? Кто-то с похожими проблемами?

...