Я пытаюсь получить данные из файлов Excel (старые xls), и, в частности, один столбец отформатирован как дата, хотя он должен быть отформатирован как время.
Когда я читаю файл с помощью NPOI, Я получаю только часть даты клетки; часть времени установлена на 12 часов вечера.
1004 * Когда я открываю файл в Excel и щелкаю ячейку, я вижу, что время заполнено.
Например, в Excel "ячейка" значение формулы "равно:
4/23/2020 3:00:00 PM
И ячейка отформатирована как:
4/23/2020
Когда я читаю ячейку с помощью NPOI, я получаю:
var value = cell.NumericCellValue;// value = 43944.5
var dateValue = DateUtil.GetJavaDate(cell.NumericCellValue);// dateValue = {4/23/2020 12:00:00 PM}
var formattedValue = _formatter.FormatCellValue(cell);// formattedValue = "4/23/20"
var formula = cell.CellFormula;// throws exception "Cannot get a formula value from a numeric formula cell"
Я прочитал код для DateUtil.GetJavaDate
и 43944.5
действительно преобразуется в 4/23/2020 12:00:00 PM
, что означает, что NumericCellValue
- это значение с уже примененным форматированием.
Поэтому мой вопрос: как я могу получить 4/23/2020 3:00:00 PM
"значение формулы" для этой ячейки с использованием NPOI?
Если у вас есть предложения с другими библиотеками, я тоже буду рад их попробовать.