Получение значений времени из листа Excel

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = app.Workbooks.Open(fname); Worksheet ws = wb.Worksheets[1]; // read some data var Monday = ws.get_Range("D11"); var Tuesday = ws.get_Range("D13"); 

Я использую Microsoft.Office.Interop.Excel для получения отработанного времени с листа Excel. Мой код работает нормально, но я продолжаю получать значения COM Object в Monday и Tuesday .

Почему это не возвращает фактические значения в ячейках D11 и D13 из моей таблицы?

Я также получаю те же значения COM Object для ws и wb , не уверен, что это имеет смысл, я бы просто выбросил его.

MS Excel сохраняет даты как значения float. Целая часть представляет дни, а дробная часть хранит часы, минуты и секунды.

Проверьте этот код, который извлекает часы, а также минуты и секунды, возможно, они вам нужны:

 float excelValue = 0.4f; int miliseconds = (int)Math.Round(excelValue*86400000); int hour = miliseconds/( 60/*minutes*/*60/*seconds*/*1000 ); miliseconds = miliseconds - hour*60/*minutes*/*60/*seconds*/*1000; int minutes = miliseconds/( 60/*seconds*/*1000 ); miliseconds = miliseconds - minutes*60/*seconds*/*1000; int seconds = miliseconds/1000;