如何使用xlrd读取日期?

时间:2015-09-07 03:28:37

标签: python-2.7 xlrd

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

for rec in sorted(out.keys()):
print rec #printing float values
print str(out[rec])

我得到了输出:

42240.0
24

1 个答案:

答案 0 :(得分:10)

Excel内部存储的日期值为浮点数。因此,如果要将Excel日期值作为Python日期值读取,则在 xlrd 中,必须使用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

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