datetime问题与xlrd&xlwt python库

我试图从一个Excel电子表格写一些date到另一个。 目前,我在excel中得到的表示并不完全是我想要的,例如:“40299.2501157407”

我可以把date打印到控制台上,但是它似乎不能正确地写入Excel电子表格 – 数据必须是Excel中的datetypes,我不能使用它的文本版本。

这里是读取date的行:

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

这是写出date的行:

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

在这两行之间没有任何事情要做date_ccr,除了几个比较之外。

有任何想法吗?

您可以将浮点数直接写入电子表格并设置单元格的数字格式。 写入值时,使用XFStyle对象的num_format_str设置格式。

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

以下示例写入date01-05-2010。 (也包括06:00:10的时间,但是这个隐藏在这个例子中select的格式。)

 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源代码的examples文件夹中有数字格式(num_formats.py)的例子。 在我的Windows机器上:C:\ Python26 \ Lib \ site-packages \ xlwt \ examples

您可以阅读有关Excel如何存储date(本页的第三节): https : //secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html