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