Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

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

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

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

    Odoo 开发与实施交流
    1
    2
    1924
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 阿
      阿狸 last edited by

      用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)
      >>>

      1 Reply Last reply Reply Quote 0
      • First post
        Last post