2014-03-06 54 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'對象,而是一個命名的元組)。 –