2

我正在尝试将一些日期从一个 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 做任何事情。

有任何想法吗?

4

1 回答 1

9

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

https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html#xlwt.Worksheet.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\examples

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

于 2010-06-25T15:47:14.697 回答