在Excel中使用Python和DataNitro转换时间

在Excel中使用Python和DataNitro转换时间,python,excel,time,number-formatting,datanitro,Python,Excel,Time,Number Formatting,Datanitro,我在Excel电子表格中有一个h:m格式的时间列表,我试图用DataNitro进行一些操作,但它似乎不喜欢Excel格式的时间 例如,在Excel中,时间8:32实际上只是十进制数。355556格式化为8:32。当我使用DataNitro访问该时间时,它将其视为十进制,而不是字符串8:32。如果我将Excel中的格式不时更改为“常规”或“数字”,它会将其转换为十进制(我不需要)。我发现唯一有效的方法是手动遍历每个单元格,并在每个单元格前面放置“文本”,然后遍历并将格式类型更改为“常规” 有没有办

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

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


有没有办法将Excel中的这些时间转换成字符串,这样我就可以用DataNitro(仅以十进制形式查看)提取信息?

如果.35556(表示为8:32)在A1中,那么
=小时(A1)&“&分钟(A1)
和Copy/Paste特殊值应该可以让您使用字符串。

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

如果是这样的话,有一篇很好的文章解释了如何将float转换为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)
        )

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

谢谢,似乎正是我需要的!这实际上可能会更好。我不必使用正则表达式来区分小时和分钟。我可以把整数转换成分钟。