2012-12-19 66 views
4

可能重复:
How do I read a date in Excel format in Python?阅读日期xlrd

我的日期可以在Excel文件中的任何领域中,但是当我看到它使用python xlrd其被读作浮动。有没有办法读取所有的Excel单元格作为字符串?

我想准备一个脚本来生成一个文件,其中所有的值都由管道隔开,但是这个日期事件正在产生问题。

+0

您可以发布您当前的代码和一些示例数据? – Harpal

+0

@Linuxios你肯定误解了。 Excel将日期存储为浮动。例如,11-1-88存储为32448.0。 – Wilduck

+0

@Wilduck:哦。抱歉。 – Linuxios

回答

34

Excel将日期存储为浮动。如果你想将它们转换xlrd具有的功能,以帮助您这样的:xldate_as_tuple


的一个实例:

import datetime, xlrd 
book = xlrd.open_workbook("myfile.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 
+0

@dedoco ....是否有任何方式来编辑日期模式,以便在输出中我们有以mm/dd/yyyy格式的日期。 –

+0

@KundanKumar'datetime'有各种各样的输出选项,据我所知(我对'datetime'不太熟悉),关闭的格式是你所需要的ISO 8601格式(YYYY-MM-DD)通过:'a1_as_datetime.date()。isoformat()' – jojo

+0

@KundanKumar重点是,Excel存储只有浮点数,所以如果你想以可读格式打印日期,恐怕你必须先转换它。这是没有办法的。 ...如果您对我的回答满意,请考虑将其标为正确答案;)。 – jojo