2010-06-25 82 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