zoukankan      html  css  js  c++  java
  • excel用xlrd日期变成42631.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

  • 相关阅读:
    Python常用模块学习
    如何在cmd下切换不同版本的Python
    Python3
    Python第二模块(文件和函数)
    Hibernate教程一览
    struts2框架一览
    Java正式day_04——嵌套循环
    AJAX
    JS+JQUERY
    Mybatis注意问题
  • 原文地址:https://www.cnblogs.com/chargeworld/p/12261638.html
Copyright © 2011-2022 走看看