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<br />这是因为EXCEL的日期是以序列数的形式存储的,即保存的日期实际是这个日期到1900-1-1相差的天数。当单元格格式为数值时,就会显示出这个差值,即2006-12-1与1900-1-1相差39052天。<br />那么如何把这串数字“翻译”成日期类型的呢?<br />下面有两种方法,这里先感谢下重庆-mrshelly,南京-cdos,武汉-冰之星辰等热心的吧友提供的方法。<br /><br />1.用 datetime.timedelta函数,如:datetime.datetime(1900,1,1,0,0,0,0)-datetime.timedelta(days=2)+datetime.timedelta(days=41763)即可实现。(总监我直接复制粘贴了 ;D)<br />该函数可以利用日期差来得到天数,正好适用该问题。更多用法可以百度下。<br />2.利用xlrd自带的函数可以实现,具体如下:(cdos,我又复制粘贴了 ;))<br />>>> import xlrd<br />>>> import time<br />>>> d = xlrd.open_workbook('e:\t1.xls')<br />>>> table=d.sheets()[0]<br />>>> print table.row_values(1)[0]<br />41610.0<br />>>> t = table.row_values(1)[0]<br />>>> print xlrd.xldate_as_tuple(t,0)<br />(2013, 12, 2, 0, 0, 0)<br />>>>



  • 用xlrd读取excel表格中的日期,得到的是一串数字,比如日期为2014/5/4读出的是41763.0<br />这是因为EXCEL的日期是以序列数的形式存储的,即保存的日期实际是这个日期到1900-1-1相差的天数。当单元格格式为数值时,就会显示出这个差值,即2006-12-1与1900-1-1相差39052天。<br />那么如何把这串数字“翻译”成日期类型的呢?<br />下面有两种方法,这里先感谢下重庆-mrshelly,南京-cdos,武汉-冰之星辰等热心的吧友提供的方法。<br /><br />1.用 datetime.timedelta函数,如:datetime.datetime(1900,1,1,0,0,0,0)-datetime.timedelta(days=2)+datetime.timedelta(days=41763)即可实现。(总监我直接复制粘贴了 ;D)<br />该函数可以利用日期差来得到天数,正好适用该问题。更多用法可以百度下。<br />2.利用xlrd自带的函数可以实现,具体如下:(cdos,我又复制粘贴了 ;))<br />>>> import xlrd<br />>>> import time<br />>>> d = xlrd.open_workbook('e:\t1.xls')<br />>>> table=d.sheets()[0]<br />>>> print table.row_values(1)[0]<br />41610.0<br />>>> t = table.row_values(1)[0]<br />>>> print xlrd.xldate_as_tuple(t,0)<br />(2013, 12, 2, 0, 0, 0)<br />>>>


登录后回复
 

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