2010-06-25 99 views
2

我想寫一些日期從一個Excel電子表格到另一個。目前,我得到Excel中的一個代表,是不是完全是我想要像這樣的:「40299.2501157407」xlrd&xlwt python libs datetime問題

我能得到的日期打印出細到控制檯但它似乎不工作正確寫入Excel電子表格 - 數據必須是Excel中的日期類型,我不能擁有它的文本版本。

下面是讀取日期行:

date_ccr = xldate_as_tuple(sheet_ccr.cell(row_ccr_index, 9).value, book_ccr.datemode) 

下面是寫的日期出列:

row.set_cell_date(11, datetime(*date_ccr)) 

沒有任何正在做的這兩條線之間date_ccr在除了幾個比較。

任何想法?

回答

8

您可以將浮點數直接寫入電子表格並設置單元格的數字格式。寫入值時,使用XFStyle對象的num_format_str設置格式。

https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.Worksheet.write-method

以下示例寫入的日期2010年1月5日。 (此外,還包括的6時00分10秒的時間,但是這是通過在本例中選擇的格式隱藏。)

import xlwt 

# d can also be a datetime object 
d = 40299.2501157407 

wb = xlwt.Workbook() 
sheet = wb.add_sheet('new') 

style = xlwt.XFStyle() 
style.num_format_str = 'DD-MM-YYYY' 

sheet.write(5, 5, d, style) 
wb.save('test_new.xls') 

有在xlwt源的文件夾的示例的數字格式(num_formats.py)的例子碼。在我的Windows機器:C:\ Python26 \ LIB \站點包\ xlwt \實例

你可以閱讀有關如何Excel存儲日期(此頁面上的第三部分):https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html