使用 OpenXML API 读取 excel 时间值
Reading excel time value using OpenXML API
我有一个 excel sheet,它有一个时间列。它的时间列当前是数据类型 'Time' (6:00:00PM),但是,我也尝试过 'Custom' 数据类型 (6:00PM)。
我使用 openXML 库读取此单元格值,如下所示:
row.XCells[9].GetValue()
我读到的值是 .75。这是我将数据类型更改为数字时看到的值。我想在我的 C# 后端将其转换为时间跨度。我该怎么做?
var ts = TimeSpan.Parse(row.XCells[9].GetValue());
无效。
Excel 日期和时间可以使用 DateTime.FromOADate
转换为 C# DateTime
。获得 DateTime
后,您可以使用 TimeOfDay
属性 获得 TimeSpan
(DateTime
的日期为 30-Dec-1899,即OLE 自动化基准日期)
TimeSpan t = DateTime.FromOADate(row.XCells[9].GetValue()).TimeOfDay;
Console.WriteLine(t.ToString(@"hh\:mm\:ss")); // prints 18:00:00
我有一个 excel sheet,它有一个时间列。它的时间列当前是数据类型 'Time' (6:00:00PM),但是,我也尝试过 'Custom' 数据类型 (6:00PM)。
我使用 openXML 库读取此单元格值,如下所示:
row.XCells[9].GetValue()
我读到的值是 .75。这是我将数据类型更改为数字时看到的值。我想在我的 C# 后端将其转换为时间跨度。我该怎么做?
var ts = TimeSpan.Parse(row.XCells[9].GetValue());
无效。
Excel 日期和时间可以使用 DateTime.FromOADate
转换为 C# DateTime
。获得 DateTime
后,您可以使用 TimeOfDay
属性 获得 TimeSpan
(DateTime
的日期为 30-Dec-1899,即OLE 自动化基准日期)
TimeSpan t = DateTime.FromOADate(row.XCells[9].GetValue()).TimeOfDay;
Console.WriteLine(t.ToString(@"hh\:mm\:ss")); // prints 18:00:00