我正在使用xlrd读取xls文件。问题是,当xlrd读取这样的值时,“2012年9月12日”,我得到这样的结果“xldate:41252.0”。当我使用xlrd.xldate\u作为元组时,我得到以下结果:
(2016、12、10、0、0、0、0)
我的代码:
当前行=-1
而当前行<;行数:
当前行+=1
行=工作表。行(当前行)
对于x范围内的x(数值):
字段类型=工作表。单元格类型(当前行,x)
如果字段_type==3:#这是日期
字段值=工作表。单元格值(当前行,x)
打印工作表.单元格(当前行,x).值
打印xlrd.xldate作为元组(字段值,1)
结果:
41252.0
(2016, 12, 10, 0, 0, 0)
这两个结果对我来说都是错误的。如何使用xlrd获取原始单元格值“12/09/2012”
根据docstring,您应该将工作簿的datemode作为第二个参数传递给xldate\u as\u tuple:
从日期时间导入日期时间
导入xlrd
book=xlrd.open_工作簿(“test.xls”)
工作表=书本。工作表按索引(0)
a1=板材单元值(rowx=0,colx=0)
打印a1#打印41252.0
打印xlrd.xldate作为元组(a1,1)#打印(2016,12,10,0,0,0)
a1\u tuple=xlrd.xldate\u as\u tuple(a1,book.datemode)
打印一组打印(2012、12、9、0、0、0)
a1_datetime=datetime(*a1_元组)
打印a1_datetime.strftime(“%m/%d/%Y”)#打印2012年9月12日