Как исправить неверные значения даты и времени из Excel? - PullRequest
0 голосов
/ 07 февраля 2020

Я использую EPPlus excelpackage с c#, чтобы получить значения из spreadsheet. Электронная таблица имеет два отдельных столбца Date и Time. Проблема в том, что значение даты равно 2/4/2020, но возвращается как 2/4/2020 12:00:00 AM. Значение времени равно 12:21 AM, но возвращается 12/30/1899 12:21:00 PM. Мой желаемый результат - вернуть значения такими, как они есть в spreadsheet. Мне не ясно, почему это происходит или как решить проблему для моих нужд.

using (ExcelPackage package = new ExcelPackage(fs))
    {
        ExcelWorkbook excelWorkBook = package.Workbook;
        ExcelWorksheet ws = excelWorkBook.Worksheets.First();
        int rowCount = 0;
        rowCount = ws.Dimension.End.Row;

        for (int r = 2; r <= rowCount; r++)
        {
            string status = ws.Cells[r, 11].Value?.ToString();
            string deliveredDate = ws.Cells[r, 15].Value?.ToString();
            string deliveredTime = ws.Cells[r, 17].Value?.ToString();
        }
        fs.Close();
    }
}

1 Ответ

0 голосов
/ 07 февраля 2020

Это нормальное смешение между актуальным значением и 2 строковыми представлениями указанного значения. Это особенно происходит со значениями DateTime.

Проблема в том, что значение даты равно «2/4/2020», но возвращается как «2/4/2020 12:00:00 AM»

Даты сами по себе не работают. На протяжении десятилетий у нас всегда есть DateTimes. Дата и время как отдельные типы? В основном упал. Это одна из тех вещей, которые трудно объяснить, но они становятся очевидными, как только вы столкнетесь с основной проблемой.

Поскольку не указано c Время было дано во время ввода, по умолчанию было установлено - 00:00:00 или 12 утра. Затем ячейка была настроена на отображение только части «Дата». Нечто, приравненное к «2/4/2020 12:00:00 AM» - это действительно то, что есть там. Механизму отображения под названием Microsoft Excel (или тому, что вы используете) просто было приказано не показывать эту часть через форматирование ячейки.

...