首页 > 其他 > 详细

excel用xlrd日期变成42631.0

时间:2020-02-04 23:04:58      阅读:105      评论:0      收藏:0      [点我收藏+]

datetime的解决办法
混合数据的表中有个日期:2016/9/18

通过table.row_values(row_number)[1]读取时,显示的结果为:42631.0

查看row_values方法的源码:

def row_values(self, rowx, start_colx=0, end_colx=None):
if end_colx is None:
return self._cell_values[rowx][start_colx:]
return self._cell_values[rowx][start_colx:end_colx]
1
2
3
4
也就是说返回了self._cell_values,self._cell_values在源码中的定义为:self._cell_values = [],这就是问题的根源

第一种解决办法:

xldate.xldate_as_datetime把日期转换回来
xldate.xldate_as_datetime(table.row_values(row_number)[1], 0)
1
2
第二种解决办法:

先用xldate.xldate_as_tuple(table.row_values(row_number)[1],0)

显示结果为:(2016, 9, 27, 0, 0, 0)

xldate_as_tuple源码部分:

# @param datemode 0: 1900-based, 1: 1904-based.
xldate_as_tuple(xldate, datemode)
1
2
最后再用datetime.datetime(2016, 9, 27, 0, 0, 0)把日期转回来
————————————————
版权声明:本文为CSDN博主「老鼠程序员」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010445540/article/details/52606429

excel用xlrd日期变成42631.0

原文:https://www.cnblogs.com/chargeworld/p/12261638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!