Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

【分享】读取excel表格日期问题



  • 用xlrd读取excel表格中的日期,得到的是一串数字,比如日期为2014/5/4读出的是41763.0
    这是因为EXCEL的日期是以序列数的形式存储的,即保存的日期实际是这个日期到1900-1-1相差的天数。当单元格格式为数值时,就会显示出这个差值,即2006-12-1与1900-1-1相差39052天。
    那么如何把这串数字“翻译”成日期类型的呢?
    下面有两种方法,这里先感谢下重庆-mrshelly,南京-cdos,武汉-冰之星辰等热心的吧友提供的方法。

    1.用 datetime.timedelta函数,如:datetime.datetime(1900,1,1,0,0,0,0)-datetime.timedelta(days=2)+datetime.timedelta(days=41763)即可实现。(总监我直接复制粘贴了 ;D)
    该函数可以利用日期差来得到天数,正好适用该问题。更多用法可以百度下。
    2.利用xlrd自带的函数可以实现,具体如下:(cdos,我又复制粘贴了 ;)
    >>> import xlrd
    >>> import time
    >>> d = xlrd.open_workbook('e:\t1.xls')
    >>> table=d.sheets()[0]
    >>> print table.row_values(1)[0]
    41610.0
    >>> t = table.row_values(1)[0]
    >>> print xlrd.xldate_as_tuple(t,0)
    (2013, 12, 2, 0, 0, 0)
    >>>



  • 用xlrd读取excel表格中的日期,得到的是一串数字,比如日期为2014/5/4读出的是41763.0
    这是因为EXCEL的日期是以序列数的形式存储的,即保存的日期实际是这个日期到1900-1-1相差的天数。当单元格格式为数值时,就会显示出这个差值,即2006-12-1与1900-1-1相差39052天。
    那么如何把这串数字“翻译”成日期类型的呢?
    下面有两种方法,这里先感谢下重庆-mrshelly,南京-cdos,武汉-冰之星辰等热心的吧友提供的方法。

    1.用 datetime.timedelta函数,如:datetime.datetime(1900,1,1,0,0,0,0)-datetime.timedelta(days=2)+datetime.timedelta(days=41763)即可实现。(总监我直接复制粘贴了 ;D)
    该函数可以利用日期差来得到天数,正好适用该问题。更多用法可以百度下。
    2.利用xlrd自带的函数可以实现,具体如下:(cdos,我又复制粘贴了 ;)
    >>> import xlrd
    >>> import time
    >>> d = xlrd.open_workbook('e:\t1.xls')
    >>> table=d.sheets()[0]
    >>> print table.row_values(1)[0]
    41610.0
    >>> t = table.row_values(1)[0]
    >>> print xlrd.xldate_as_tuple(t,0)
    (2013, 12, 2, 0, 0, 0)
    >>>


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待