这里将不介绍openpyxl模块的详细操作。

主要就是记录一个使用openpyxl模块将Excel表格的数据导入数据库中的实例。

from openpyxl import load_workbook

import os,django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "项目名称.settings")
django.setup() from backend.models import User # 封装成一个函数,调用是传入表格路径即可
def xlsxHandler(localpath):
wb = load_workbook(localpath) # 打开已存在的execl文件,格式xlsx ws = wb[wb.sheetnames[0]] # 选择第一张sheet表
rows = ws.max_row # 获取表的最大行数
columns = ws.max_column # 获取表的最大列数 column_heading = [ws.cell(row=1,column=x).value for x in range(1,columns+1)] # 读取excel第一行的值,写入list column_name = ['用户名','公司名称','电话'] # 数据库必需字段 # print(column_heading) # 文件第一行title if len([name for name in column_name if name not in column_heading]) == 0: # 返回字段组成的list为空,则说明文件列标题包含MySQL需要的字段
print(' - 检查完成,执行写入')
# 判断Excel中各字段所在列号
username = column_heading.index(column_name[0]) # 用户名 - 位置
company = column_heading.index(column_name[1]) # 公司 - 位置
phone = column_heading.index(column_name[2]) # 电话 - 位置 if ws.cell(row=2,column=1).value == None:
table_start_line = 3
else:
table_start_line = 2
data = []
userList = []
for row in range(table_start_line, rows + 1):
for column in range(1, columns + 1): # 因为从第1列开始,所以此处从1开始
data.append(str(ws.cell(row=row, column=column).value)) # 以字符串形式保存数据到MySQL
print(data)
print(data[username],data[company],data[phone])
userList.append(User(username=data[username],company=data[company],phone=data[phone]))
data = []
print('userList ',userList ) try:
User.objects.bulk_create(userList ) # 使用bulk_create批量导入
msg = '导入成功'
except Exception as e:
print('异常',e)
msg = '导入失败'
else:
print('文件列标题不完全包含数据库需要的字段,请检查文件。')
msg = '文件列标题不完全包含数据库需要的字段,请检查文件。'
wb.close() # 关闭excel return msg

使用openpyxl模块将Excel中的数据导入数据库的更多相关文章

  1. 使用Python将Excel中的数据导入到MySQL

    使用Python将Excel中的数据导入到MySQL 工具 Python 2.7 xlrd MySQLdb 安装 Python 对于不同的系统安装方式不同,Windows平台有exe安装包,Ubunt ...

  2. excel中的数据导入oracle方法

    SQL_loader批量上传数据 1.    注释 在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中.如果是小数据量,如几十条至几百条,那么用plsql dev工具 ...

  3. 详解用Navicat工具将Excel中的数据导入Mysql中

    第一步:首先需要准备好有数据的excel: 第二步:选择"文件"->"另存为",保存为"CSV(逗号分隔)(*.csv)",将exce ...

  4. c#.net Excel中的数据导入到SQL数据库中

    /// <summary>        /// 从Excel 导入学生        /// </summary>        /// <param name=&qu ...

  5. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  6. 用ttBulkCp把excel中的数据导入到timesten数据库中

    最近要做数据预处理,需要用到数据库.而且是以前从来没听说过的TimesTen. 首要目标是要把Excel里的数据,导入到TimesTen数据库中.而TimesTen在win10里用不了,于是我就在虚拟 ...

  7. 使用navicat for sqlserver 把excel中的数据导入到sqlserver数据库

    以前记得使用excel向mysql中导入过数据,今天使用excel向sqlserver2005导入了数据,在此把做法记录一下 第一步:准备excel数据,在这个excel中有3个sheet,每个she ...

  8. 把excel中的数据导入到数据库

    import.php <?php header("Content-Type:text/html;charset=utf-8"); echo '<html> < ...

  9. 把excel中的数据导入到Oracle数据库中

    从事工作以来,数据库一直使用oracle,却不知道excel导入oracle,今天看了一篇文章,分享给大家,希望对大家有用. https://jingyan.baidu.com/article/0f5 ...

随机推荐

  1. Python FTP文件传输

    FTP Server import socket import struct from concurrent.futures import ThreadPoolExecutor import json ...

  2. 剑指offer二十之包含min函数的栈

    一.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 二.思路 用一个栈dataStack保存数据,用另外一个栈minStack保存依次入栈最小的数.每次元素存入minSt ...

  3. .Net 站点跨域问题及解决方法

    一.什么是站点跨域 了解跨域之前, 先了解下什么同源策略?百度百科:同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功 ...

  4. (转)如何入门 Python 爬虫

    “入门”是良好的动机,但是可能作用缓慢.如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习. 另外如果说知识体系里的每一个知识点是图里的点,依赖关系是边的话,那么 ...

  5. C#集成FastDFS断点续传

    C#集成FastDFS断点续传 参考 .net版本FastDFS客户端v5.05. https://github.com/zhouyh362329/fastdfs.client.net FastDFS ...

  6. scala-02-数组的操作

    scala中的数组和 java中的数组一样, 定义了长度后不可改变 1, 产生一个数组: 有3种创建数组的方式, 分别直接new, 直接赋值, 或者使用 Array中的rang来产生 /** * 获取 ...

  7. mac 比较两个文件

    比较两个文件,输出两个文件都有的行,可以 1.使用comm命令 如下例: ------------------->$ cat 1s1.txt line line line line line l ...

  8. 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形

    完美正方形 如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形.历史上,人们花了很久才找到了若干完美正方形.比如:如下边长的22个正方形 2 3 4 6 7 8 12 13 ...

  9. (转)mybatis数据库物理分页插件PageHelper

    以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了.最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧.记录下其使用方法. ...

  10. 使用area标签模仿a标签

    众所周知,map标签可以给img图像标记热点区域,而area标签就是跟map标签一起使用的. 但area标签的作用可不止用来标记热点,因为它也有href属性,因此某些场景可以代替a标签进行页面跳转. ...