1

我在 Excel 电子表格中有一个 h:m 格式的时间列表,我正在尝试使用 DataNitro 进行一些操作,但它似乎不喜欢 Excel 格式化时间的方式。

例如,在 Excel 中,时间 8:32 实际上只是十进制数 .355556,其格式显示为 8:32。当我使用 DataNitro 访问该时间时,它会将其视为小数,而不是字符串 8:32。如果我将 Excel 中的格式从时间更改为常规或数字,它会将其转换为小数(我不想要)。我发现唯一可行的方法是手动遍历每个单元格并将 ' 放在每个单元格前面,然后遍历并将格式类型更改为 General。

有什么方法可以将 Excel 中的这些时间转换为字符串,以便我可以使用 DataNitro 提取信息(仅将其视为小数)?

4

2 回答 2

3

如果 .355556(表示为 8:32)在 A1 中,那么=HOUR(A1)&":"&MINUTE(A1)复制/粘贴特殊值应该会让你得到一个字符串。

于 2012-12-05T14:42:50.590 回答
0

理想情况下,您可能不想更改 excel 保存数据的方式(显然取决于您的用例)。

如果是这种情况,有一篇很棒的帖子如何在 Python 中读取 Excel 格式的日期?这解释了如何将浮点数转换为 python 日期时间对象。特别是@John Machin 的脚本效果很好。

import datetime

def minimalist_xldate_as_datetime(xldate, datemode):
    # datemode: 0 for 1900-based, 1 for 1904-based
    return (
        datetime.datetime(1899, 12, 30)
        + datetime.timedelta(days=xldate + 1462 * datemode)
        )

请注意他的免责声明“这是裸关节无安全带使用自有风险版本:”我使用它没有任何问题。

于 2013-07-12T13:11:40.387 回答