从Excel单元格读取

我正在使用EPPlus软件包从.xlsx文件读取。 我需要从单元格读取TimeSpan对象。 Excel单元格将包含“hh:mm”格式的数据,例如:不带引号的“09:00”或“18:30”。

这是我的代码:

string myString = workSheet.Cells[1,1].Value.ToString(); double d = double.Parse(myString); DateTime dt = DateTime.FromOADate(d); TimeSpan ts = new TimeSpan(dt.Hour, dt.Minute, dt.Second); 

对于excel文件中的“09:00”或“08:30”数据,myString分别包含“0.375”或“0.354166666666667”,ts可按照预期进行计算。 但是对于excel文件中的“10:00”,myString包含“30/12/1899 10:00:00 AM”,并且double值parsing失败,因此ts无法计算。

我不知道为什么这种情况不一致。 我如何一致地读取一个Excel单元格(更确切地说是一个通用格式的单元格)的双值? 请帮忙。

这里是我的简化代码(在Siddharth Rout的build议之后):

 string myString = workSheet.Cells[1,1].Text.ToString(); TimeSpan ts = TimeSpan.Parse(myString); 

到目前为止,它正在处理各种价值观。

这里是我的简化代码(在Siddharth Rout的build议之后):

 string myString = String.Format("{0}", workSheet.Cells[1,1].Text); TimeSpan ts = TimeSpan.Parse(myString); 

到目前为止,它正在处理各种价值观。