使用python xlrd将日期作为字符串从excel中读取而不是浮动

使用python xlrd将日期作为字符串从excel中读取而不是浮动,python,xlrd,Python,Xlrd,可能重复: 我的日期可以在excel文件中的任何字段中,但当我使用python xlrd读取它时,它将被读取为浮点值。有没有办法将所有excel单元格读取为字符串 我想准备一个脚本来生成一个文件,该文件将excel文件中的所有值用管道隔开,但这个日期问题产生了问题。excel将日期存储为浮动。如果要转换它们,xlrd有一个功能可以帮助您: 例如: import datetime, xlrd book = xlrd.open_workbook("myfile.xls") sh = book.sh

可能重复:

我的日期可以在excel文件中的任何字段中,但当我使用python xlrd读取它时,它将被读取为浮点值。有没有办法将所有excel单元格读取为字符串


我想准备一个脚本来生成一个文件,该文件将excel文件中的所有值用管道隔开,但这个日期问题产生了问题。

excel将日期存储为浮动。如果要转换它们,xlrd有一个功能可以帮助您:

例如:

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

你能发布你当前的代码和一些示例数据吗?@Linuxios你肯定误解了。Excel将日期存储为浮动。例如,11-1-88存储为32448.0。@dedoco…是否有任何方法可以编辑日期模式,以便在输出中使用mm/dd/yyyy格式的日期。@KundanKumar
datetime
有多种输出选项,据我所知(我不太熟悉
datetime
),您需要的格式是ISO 8601格式(yyyy-mm-dd)您可以通过以下方式获得:
a1\u as\u datetime.date().isoformat()
@KundanKumar问题是,excel只存储浮点数,因此如果您想以可读格式打印日期,恐怕您必须先转换它。这是没有办法的。。。如果你对我的答案感到满意,请考虑将其标记为正确答案;迟到,但对于任何路过的人:在mm/dd/yyyy格式@KundanKumar的datetime()方法后面添加.strftime(“%m/%d/%Y”)