我正在使用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);
Run Code Online (Sandbox Code Playgroud)
对于excel文件中的"09:00"或"08:30"数据,myString分别包含"0.375"或"0.354166666666667",并且可以按预期计算ts.但是对于excel文件中的"10:00",myString包含"30/12/1899 10:00:00 AM",并且双值的解析失败,因此无法计算ts.
我不确定为什么这种情况不一致.如何从excel单元格(更确切地说是具有通用格式的单元格)中始终读取双精度值?请帮忙.
这是我的简化代码(在Siddharth Rout的建议之后):
string myString = workSheet.Cells[1,1].Text.ToString();
TimeSpan ts = TimeSpan.Parse(myString);
Run Code Online (Sandbox Code Playgroud)
到目前为止,它正在处理各种价值观.
这是我的简化代码(在Siddharth Rout的建议之后):
string myString = String.Format("{0}", workSheet.Cells[1,1].Text);
TimeSpan ts = TimeSpan.Parse(myString);
Run Code Online (Sandbox Code Playgroud)
到目前为止,它正在处理各种价值观.
| 归档时间: |
|
| 查看次数: |
9075 次 |
| 最近记录: |