从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工作表工作小时。 我的代码似乎正常工作,但我不断得到MondayTuesday的值COM Object

为什么它不从我的电子表格中返回单元格D11和D13中的实际值?

我也得到了相同的COM Objectwswb值,不知道这是否有任何相关性,我只是把它扔在那里。

MS Excel将date存储为浮点值。 整数部分表示date,小数部分保留小时,分钟和秒。

检查提取小时以及分钟和秒钟的代码,也许你需要它们:

 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;