xlrd会把xls文件中比如20160--03-01类型的时间转换成整数,那么我们如何保证xlrd读取进来的时间为2016-03-01格式呢?

使用xlrd中的xldate_as_tuple函数

代码如下:

  1. from datetime import datetime
  2.  
  3. from xlrd import xldate_as_tuple
  4.  
  5. datetime(*xldate_as_tuple(table.cell(2,2).value,))
    str(datetime(*xldate_as_tuple(table.cell(2,2).value,0)))[0:10]#取字符串的前十,例如结果为2016-06-01 00:00:00 则为2016-06-01

完整导入数据代码:

  1. #coding:utf-8
  2.  
  3. import os
  4. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings")
  5.  
  6. '''
  7. Django 版本大于等于1.7的时候,需要加上下面两句
  8. import django
  9. django.setup()
  10. 否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
  11. '''
  12. import django
  13.  
  14. if django.VERSION >= (1, 7):#自动判断版本
  15. django.setup()
  16.  
  17. from contract.models import Bill
  18. import xlrd #excel读工具
  19. from datetime import datetime
  20. from xlrd import xldate_as_tuple
  21.  
  22. data= xlrd.open_workbook('DEMO.xlsx') #打开文件
  23. table = data.sheet_by_index(0) #获取工作表
  24. nrows = table.nrows #行数
  25. ncols = table.ncols #列数
  26. colnames = table.row_values(0)
  27. WorkList = []
  28. x = y = z = 0
  29. for i in range(1,nrows):
  30. row = table.row_values(i) #获取每行值
  31. for j in range(0,ncols):
  32. if type(row[j]) == float: #如果值为float则转换为int,避免出现1输出为1.0的情况
  33. row[j] = int(row[j])
  34. if row: #查看行值是否为空
  35. if Bill.objects.filter(contract_code = row[0]).exists():#判断该行值是否在数据库中重复
  36. x = x + 1 #重复值计数
  37. else:
  38. y = y + 1 #非重复计数
  39. row[3] = str(datetime(*xldate_as_tuple(row[3],0)))[0:10]#xlrd读取xls文件时间整数值转换为date形式
  40. row[4] = str(datetime(*xldate_as_tuple(row[4],0)))[0:10]
  41. row[5] = str(datetime(*xldate_as_tuple(row[5],0)))[0:10]
  42. WorkList.append(Bill(contract_code=row[0], contract_name=row[1], cust_name=row[2], con_sign_date=row[3],
  43. con_eff_date=row[4], con_exp_date=row[5],con_state=row[6], con_age=row[7],
  44. con_type=row[8], con_agent=row[9],new_flag=row[10],original_code=row[11],payment=row[12]
  45. )
  46. )
  47. else:
  48. z = z + 1 #空行值计数
  49. Bill.objects.bulk_create(WorkList)
  50. print '数据导入成功,导入'+str(x)+'条,重复'+str(y)+'条,有'+str(z)+'行为空!'

[django]django xlrd处理xls中日期转换问题的更多相关文章

  1. oracle中日期转换

    oracle中,日期转换函数有很多,常用命令如下: to_char()命令将时间戳转换为用户规定的日期格式,如: SELECT TO_CHAR(sysdate,'YYYY-MM-DD hh24:mi: ...

  2. JAVA中日期转换和日期计算的方法

    日期的格式有很多形式,在使用过程中经常需要转换,下面是各种类型转换的使用例子以及日期计算方法的例子. 一.不同格式日期相互转换方法 public class TestDateConvertUtil { ...

  3. sql中日期转换

    date_format的函数使用令日期格式转换变得十分便捷首先先说一个自己粗心踩到的坑.因为最开始自己建的表里面存的数据,已经固定是周一的时间了,然后有一个状态判断是需要拿到所有周一是否有数据,当时忘 ...

  4. s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念. 具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时 ...

  5. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    //时间格式2014-02-02 14:10:00改成时间戳 //此时构造出来的时间是:2013/03/08 00:00:00. //这样得到的是一个数值,表示的是从1970年1月1日0点0分0秒到d ...

  6. java中json和字符串互转及日期转换 练习

    一:以下是用到的jar名称: commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons- ...

  7. [django]l利用xlrd实现xls文件导入数据

    代码: #coding:utf-8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.sett ...

  8. Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法

    Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法 一丶ORM常用字段 ...

  9. Struts2中Date日期转换的问题

      今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...

随机推荐

  1. form表单中enctype="multipart/form-data"的作用

    在我们使用php导入和导出excel表格的时候经常会见到 enctype="multipart/form-data",哪他的作用是什么呢? ENCTYPE="multip ...

  2. 在PHP语言中使用JSON和将json还原成数组

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...

  3. No.025:Reverse Nodes in k-Group

    问题: Given a linked list, reverse the nodes of a linked list k at a time and return its modified list ...

  4. mysql基本操作

    1.创建表:create table if not exists student(id integer(4) primary key auto_increment,name varchar(10),s ...

  5. VS 快捷键

    项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...

  6. Xdebug文档(二)变量显示特性

    Xdebug能替代PHP的var_dump()函数来显示变量值.xdebug的版本包含对不同数据类型作数组元素/对象属性.最大深度和字符串长度以不同颜色标识.这里也有一些功能能很好地处理变量显示. 相 ...

  7. 把普通对象转换成json格式的对象

    1.什么叫做JSON?JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var ...

  8. entry for sde instance not found in services file解决方法[转]

    当使用如下连接: ipropertyset ppropertyset; ppropertyset = new propertysetclass(); ppropertyset.setproperty( ...

  9. 自动显示隐藏布局的listView

    借助View的OnTouchListener接口来监听listView的滑动,通过比较与上次坐标的大小,判断滑动方向,并通过滑动方向来判断是否需显示或者隐藏对应的布局,并且带有动画效果. 1.自动显示 ...

  10. iOS检查App新版本并更新新版本

    检查新版本 更新  第一种方法 //检查新版本 更新 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ...