【问题标题】:Reading excel time value using OpenXML API使用 OpenXML API 读取 excel 时间值
【发布时间】:2016-05-11 08:07:50
【问题描述】:

我有一个带有时间列的 Excel 表。它的时间列当前的数据类型为“时间”(下午 6:00:00),但是,我也尝试过使用“自定义”数据类型(下午 6:00)。

我使用 openXML 库读取此单元格值,如下所示:

row.XCells[9].GetValue()

我读到的值是 0.75。这是我将数据类型更改为数字时看到的值。我想在我的 C# 后端将其转换为时间跨度。我该怎么做?

 var ts = TimeSpan.Parse(row.XCells[9].GetValue());

没用。

【问题讨论】:

    标签: excel time openxml type-conversion


    【解决方案1】:

    Excel 日期和时间可以使用 DateTime.FromOADate 转换为 C# DateTime。拥有DateTime 后,您可以使用TimeOfDay 属性获取TimeSpanDateTime 的日期为 1899 年 12 月 30 日,这是 OLE 自动化的基准日期)

    TimeSpan t = DateTime.FromOADate(row.XCells[9].GetValue()).TimeOfDay;
    Console.WriteLine(t.ToString(@"hh\:mm\:ss")); // prints 18:00:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多