.NET C # Чтение файла Excel Дата и время Столбец читается на 1 секунду меньше, почему? - PullRequest
2 голосов
/ 06 марта 2012

У меня есть файл Excel, и один из его столбцов имеет значение DateTime:

01.03.2012 10:00
02.03.2012 10:00
03.03.2012 10:00
04.03.2012 10:00

И я читаю с этим кодом:

OleDbDataAdapter command = new OleDbDataAdapter("select * from [" + sheetName + "$]", Conn);
command.Fill(Result);

Интересно, что данные из файла Excel выглядят именно так (1-й столбец верен, но остальные на 1 секунду меньше)

01.03.2012 10:00:00
02.03.2012 09:59:59
03.03.2012 09:59:59
04.03.2012 09:59:59

А остальные значения собираются в 09:59:59 ... Только первое значение приходит к датируемому правильно.

Почему у меня возникла эта проблема и есть идеи, как получить их точно так же, как в файле Excel?

Я бы очень признателен за любую помощь. Заранее спасибо,

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

Это действительно не 10:00 в вашем листе Excel, потому что Excel не хранит время в этом формате:

  • Одна секунда удерживается как 1 / (24 * 60 * 60) = 0,00001157407
  • 10: 00: 00 удерживается как 0,41666666667
  • 9: 59: 59 - 0,41665509259

Скопируйте время в другие ячейки и отформатируйте их как числа с семью или восемью десятичными знаками. Я предполагаю, что значения, преобразованные в 9:59:59, меньше, чем 0,41666666667, и они скорее усечены, чем округлены.

1 голос
/ 06 марта 2012

Я подозреваю, что у вас на самом деле есть 09:59:59 в электронной таблице Excel, и это формат отображения, который округляет время до 10:00. Проверьте, какое форматирование ячейки применяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...