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

代码:

#coding:utf-8 

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings") 

‘‘‘
Django 版本大于等于1.7的时候,需要加上下面两句
import django
django.setup()
否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren‘t loaded yet.
‘‘‘
import django

if django.VERSION >= (1, 7):#自动判断版本
    django.setup()

from keywork.models import DevData
import xlrd #excel读工具

data= xlrd.open_workbook(‘cs.xls‘) #打开文件
table = data.sheet_by_index(0) #获取工作表
nrows = table.nrows #行数
ncols = table.ncols #列数
colnames =  table.row_values(0)
WorkList = []
x = y = z = 0
for i in range(1,nrows):
    row = table.row_values(i) #获取每行值
    if row: #查看行值是否为空
        if DevData.objects.filter(serv_id = row[0],user_flag=row[15]).exists():#判断该行值是否在数据库中重复
            x = x + 1 #重复值计数
        else:
            y = y + 1 #非重复计数
            WorkList.append(DevData(serv_id=int(row[0]), serv_state_name=row[1], acc_nbr=row[2], user_name=row[3], acct_code=int(row[4]), product_id=int(row[5]),
                                            mkt_chnl_name=row[6], mkt_chnl_id=int(row[7]),mkt_region_name=row[8], mkt_region_id=int(row[9]),mkt_grid_name=row[10],
                                            sale_man=row[11],sale_outlets_cd1_name=row[12], completed_time=row[13],remove_data=row[14], user_flag=int(row[15]),
                                            pro_flag=row[16], service_offer_id=row[17],service_offer_name=row[18], finish_time=row[19],staff_name=row[20],
                                            staff_code=row[21],org_name=row[22],prod_offer_name=row[23],day_id=int(row[24]),
                                            )
                                    )
    else:
        z = z + 1     #空行值计数
DevData.objects.bulk_create(WorkList)
print ‘数据导入成功,导入‘+str(x)+‘条,重复‘+str(y)+‘条,有‘+str(z)+‘行为空!‘

中间就遇见一个问题很让我纠结,就是xlrd 在读取数据时,会将 xls 单元格中所有可能是数字的数据都自动转换成 python 的 float。这时候,我们通过 str(cell.value) 会得到 12.0 (假设 cell.value = 12.0)。

解决办法:比如我的a=1,那么xlrd默认输出1.0,只需要int(a)就可以了!

时间: 2024-09-29 04:17:20

[django]l利用xlrd实现xls文件导入数据的相关文章

php上传xls文件导入到mysql数据表

申明下面的文章属于转载,现在大家新下载的版本跟下面列子这个不一样!我看了很多网上的列子,最后我还是读了那个英文的手册,上面说的很清楚!大家英语不好可以下载有道!其实重点是要包含下面两行: require_once 'excellib/PHPExcel.php'; require_once 'excellib/PHPExcel/IOFactory.php'; 你们各自的替换各自存放目录,我这里用的是excellib目录.就是要把PHPExcel.php',PHPExcel/IOFactory.ph

.NET从EXCEL文件导入数据

.NET com组件 这种方法在计算机没有安装office套件时,也是能够使用的.所以不依赖于软件, 但是还是需要xcel.exe编译后的dll文件打包到相应的程序中来引用.这样将dll文件" 随身携带",就可以了.还是挺不错的! 1.注册Microsoft.Office.Interop.Excel.dll 在office安装文件夹下找到excel.exe,路径D:\Program Files(x86)\Microsoft Office\Office15.将excel.exe文件复制到

Apache Spark技术实战之4 -- 利用Spark将json文件导入Cassandra

欢迎转载,转载请注明出处. 概要 本文简要介绍如何使用spark-cassandra-connector将json文件导入到cassandra数据库,这是一个使用spark的综合性示例. 前提条件 假设已经阅读技术实战之3,并安装了如下软件 jdk scala sbt cassandra spark-cassandra-connector 实验目的 将存在于json文件中的数据导入到cassandra数据库,目前由cassandra提供的官方工具是json2sstable,由于对cassandr

Java之利用openCsv将csv文件导入mysql数据库

前两天干活儿的时候有个需求,前台导入csv文件,后台要做接收处理,mysql数据库中,项目用的springboot+Vue+mybatisPlus实现,下面详细记录一下实现流程. 1.Controller层部分: /** * 读取csv文件,批量插入到数据库中 */ @RequestMapping("/importcsv") @RequiresPermissions("xxx:xxxxx:xxx") public R importCsv(@RequestParam(

MySQL 笔记(三)由 txt 文件导入数据

改编自学校实验,涉及一些字符集相关的问题. 索引 建库 导入数据 最终脚本 下载数据 点击这里 建库 create.sql DROP DATABASE IF EXISTS orderdb; CREATE DATABASE orderdb; USE orderdb; CREATE TABLE employee ( employee_no VARCHAR(8), employee_name VARCHAR(10), sex CHAR(1), birthday DATE, address VARCHA

国产达梦数据库-通过Excel文件导入数据

考虑到完整性,我这里就啰嗦一点,从新建达梦数据库的数据库,再新建表.表结构开始. 一.新建数据库:模式 --> 右键 --> 新建模式:这里的新建模式就是MySQL中的新建库 二.弹出如下新建模式对话框: 三.输入模式名,并选择模式拥有者,操作如下: 四.再点两次确定按钮,即可完成新建模式,完成后,列表会显示刚新建的模式OASYS,如下图: 五.既然现在有了模式(数据库),就可以新建具体要使用的表了,操作如下: 六.打开新建表对话框,填写输入具体表信息.字段信息,如下图: 七.点击确定以后,结

利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script> 2.导入文件框 这里importExcel(this)是方法,名字可以自己定义. <input type="file"onchang

xls文件导入数据库

 protected void btn_ok_Click(object sender, EventArgs e)     {         int num = 0;                  try         {             string x = txtpath.Text;             //DirectoryInfo theFolder = new DirectoryInfo(x);             //FileInfo[] fileInfo = 

【开发者笔记】利用shp2pgsql将shape文件导入到postgresql中

导入shp文件到postgresql中 1.首先,你需要让shp2pgsql命令可用,百度下载,加入环境变量即可. 下载地址:https://download.osgeo.org/postgis/windows/pg96/ 如图,打开网址,下载目标文件,解压得到如下目录: 将该目录添加到环境变量,然后cmd可运行shp2pgsql即可. 2.命令如下: shp2pgsql -s 3857 -a -W GBK 文件名.shp 命名空间名.表名 | psql -h localhost -U post