如何使用xlrd读取日期?

dou*_*bts 6 xlrd python-2.7

这是代码,其中"rec"变量用于读取Excel工作表中的日期,但其打印浮点值如何以日期格式打印,例如"2015:09:02"

for rec in sorted(out.keys()):
print rec #printing float values
print str(out[rec])
Run Code Online (Sandbox Code Playgroud)

我有输出:

42240.0
24
Run Code Online (Sandbox Code Playgroud)

Shi*_*iva 12

Excel内部存储的日期值为浮点数.因此,xlrd如果要将Excel日期值作为Python日期值读取,则必须使用该xldate_as_tuple方法来获取日期.

文档:http://www.lexicon.net/sjmachin/xlrd.html#xlrd.xldate_as_tuple-function

这是一个通用的例子:

import datetime, xlrd
book = xlrd.open_workbook("myexcelfile.xls")
sh = book.sheet_by_index(0)
a1 = sh.cell_value(rowx=0, colx=0)
a1_as_datetime = datetime.datetime(*xlrd.xldate_as_tuple(a1, book.datemode))
print 'datetime: %s' % a1_as_datetime
Run Code Online (Sandbox Code Playgroud)

如果您创建文件myexcelfile.xls并在单元格A1中输入日期并运行上面的代码,您应该能够在a1_as_datetime变量中看到正确的日期时间值.