这里将不介绍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. D14——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...

  2. js DOM 案例

    模态框 <html> <head> <meta charset="UTF-8"> <title>模态框</title> ...

  3. odoo开发笔记--前端搜索视图--按照时间条件筛选

    odoo在日常使用中,常会有这样的需要,比如,某个列表按照 日 .周.月.年来过滤搜索. 效果: 那么如何实现呢,如下是一段不同写法的样例代码,提供参考. <!--某模型 搜索视图--> ...

  4. vmworkstation安装unbuntu server 网络配置:NAT模式

    之前安装虚拟机测试环境的时候,习惯了使用桥接模式或者仅主机模式:今天偶然发现,其实NAT 模式的网络配置还是挺方便的. 在新建虚拟机的时候,选择网络模式为NAT,虚拟机创建完成之后,在vmworkst ...

  5. 以太坊ERC20代币合约案例

    一.ERC20代币合约与web3调用 ERC20代币合约在小白看来觉得很高大上,但其实就是一个代币的定义标准,方便其他dapp统一调用各种代币的方法.如图: 二.ERC20合约标准 [官方链接] co ...

  6. webgl之观察三维空间

    在之前的教程中,我们已经接触到了3d的基本应用,而这里,将会继续介绍两种不同的相机,即透视相机和正投影相机:还会学习设置相机的不同参数,这样就可以使场景以不同的角度显示出来. 一.正投影和透视投影概念 ...

  7. Git for Windows之团队合作

    1.先给项目添加一个成员 输入对方码云邮箱账号,添加成功. 2.登陆,将码云上面的项目克隆到本地 (1).设置全局参数  用户名和邮箱用于push和pull代码 (2).克隆目标项目地址 查看本地文件 ...

  8. iOS Round Double value to 2 decimal digits and round 3rd decimal digit up

    I have I double value like this one 17.125. It should be rounded up to 17.13 If I use the simple met ...

  9. [Java初探08]__简单学习Java类和对象

    前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...

  10. 基于boot2docker部署Docker环境

    Docker轻量级的特性使得我们可以快速打包开发环境:一处编译,到处使用.我们可以在第一次编译好需要的开发环境,然后把镜像导出打包,只有有docker环境,便可以快速还原原来的开发环境. 很常用的一个 ...