Я разбираю файл Excel и испытываю трудности с чтением значения ячейки, которая имеет собственный формат ячеек dd mmm yy
. Значение в ячейке, о которой идет речь, составляет 29 октября 09 (ячейка B25). Когда я запустил
String arrive = Convert.ToString(_worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);
Я получаю "40114" в качестве значения ячейки.
Затем, когда я пытаюсь
DateTime arrive = Convert.ToDateTime(_worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);
Я получаю сообщение об ошибке "При отбрасывании из числа значение должно быть числом меньше бесконечности".
Любые мыслительные идеи будут высоко оценены.
Спасибо.
Это случайное число - это дата OLE.
Вероятно, вам нужен метод DateTime.FromOADate
. Посмотрите ссылку в MSDN.
Похоже, вы хотите DateTime.ParseExact
, так как это нестандартный формат, с которым вы работаете, насколько это возможно .NET.
Попробуйте следующее:
var dateTimeStr = _worksheets["GENERAL"].get_Range("B25", Type.Missing).Value2);
var dateTime = DateTime.ParseExact(dateTimeStr, "dd MMM yy");
Страница пользовательских дат и времени Frormat Strings, также может быть хорошей ссылкой на закладку.