我试图将一些从一个Excel电子表格到另一个Excel电子表格的日期。目前,我在Excel中获得了一个代表,这不是我想要的,例如:“ 40299.2501157407”

我可以找到可以罚款到控制台的日期,但是它似乎不能正确地写给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上做任何事情。

有任何想法吗?

有帮助吗?

解决方案

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

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

以下示例写日期01-05-2010。 (还包括06: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 site-packages xlwt xpess

您可以阅读有关Excel商店日期的信息(本页上的第三部分): https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top