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
值,不确定这是否有任何相关性,我想将其扔出去。
答案 0 :(得分:2)
MS Excel将日期存储为浮点值。整数部分表示天数,小数部分表示小时,分钟和秒。
检查此代码,提取小时数以及分钟和秒数,也许您需要它们:
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;