使用OpenXML API读取Excel时间值
我有一个有时间栏的Excel表。 它的时间列目前是数据types“时间”(下午6:00:00),但是,我已经尝试了“自定义”数据types(下午6:00)。
我使用openXML库读取这个单元格的值如下:
row.XCells[9].GetValue()
我读的价值是0.75。 这是我将数据types更改为数字时看到的值。 我想将其转换为C#后端的时间跨度。 我怎么做?
var ts = TimeSpan.Parse(row.XCells[9].GetValue());
不起作用。
可以使用DateTime.FromOADate
将Exceldate和时间转换为C# DateTime.FromOADate
。 一旦你有了DateTime
你可以使用TimeOfDay
属性来获得一个TimeSpan
(date时间的date是1899年12月30日这是OLE自动化的基准date)
TimeSpan t = DateTime.FromOADate(row.XCells[9].GetValue()).TimeOfDay; Console.WriteLine(t.ToString(@"hh\:mm\:ss")); // prints 18:00:00