2014-03-06 53 views
1

我想把时间放入一个单元格。我需要它是独立的,无需年,月,日数据日期时间附加。
当我试着写一个字符串十五点55分00秒与格式H:MM AM/PM它显示为在Excel工作表十五点55分00秒,直到我选择单元格,然后按回车,这样似乎这不是一个有效的方法。Python XLWT - 问题与自定义格式

传递日期时间工作,但我不想在我的单元格中有日期信息,只是格式正确的时间。

我当前的代码如下:

所有的
style = XFStyle() 
style.num_format_str = 'h:mm:ss AM/PM' 
time = "15:22:00" 
ws.write(i, 4, time, style) 

回答

1

首先,在Excel中没有这样的东西没有日期的时间。单元格的值可以进行格式化,以便日期部分不显示,但无论如何它仍然存储在单元格中。

当您手动输入时间到Excel中时,它假定日期为零(如果格式正确,Excel将愉快地显示为1900年1月0日)。如果这是你想要使用xlwt复制什么,然后只需使用一个Python datetime.time对象,而不是datetime.datetime

import datetime 

style = XFStyle() 
style.num_format_str = 'h:mm:ss AM/PM' 
time = datetime.time(hour=15, minute=22, second=0) 
ws.write(i, 4, time, style) 
+0

你的建议的工作。我把字符串中的时间分成几小时,几分钟和几秒钟,并得到了预期的结果。我确信有一个更优雅的解决方案来达到我想要实现的目标,但这很有效。谢谢。 – DenisS

+0

@ IL3DSM:如果你有一个非零的日期部分(老实说,我不明白为什么),那么就使用'datetime.datetime'对象,它可以用'strptime'方法从字符串中生成。另外,根据你如何从你的字符串中获取片断,使用'time.strptime'方法可能更容易(这不会给你一个'datetime.time'对象,而是一个命名的元组)。 –