Python3读取Excel数据存入MySQL的方法


Posted in Python onMay 04, 2018

Python是数据分析的强大利器。

利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理。

这里向大家分享python3如何使用xlrd读取excel,并使用Python3操作pymysql模块将数据存入Mysql中,有需要的朋友们一起来看看吧。

前言

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

版本

python >= 3.6

mysql >= 5.7.19

安装

python、mysql的安装这里就不详细述说了,有需要的朋友自行百度

xlrd : 可以使用pip安装也可手动下载源码安装,pip安装:pip install xlrd

pymysql : 可以使用pip安装也可手动下载源码安装, pip安装: pip install xlrd

模块

import xlrd
import pymysql
from datetime import datetime
from xlrd import xldate_as_tuple

读取excel

data = xlrd.open_workbook("D:/sales_data.xls") //读取D盘中名为sales_data的excel表格
table_one = data.sheet_by_index(0)      //根据sheet索引获取sheet的内容
table_two = data.sheet_by_index(1)

创建数据库连接

db = pymysql.connect("localhost", "root", "gaishi123", "sales_data", use_unicode=True, charset="utf8")

gaishi123是mysql的root的密码,sales_data是数据库名

for site in sites:
 # 遍历sheet1
 for nrows_one in range(1, int(table_one.nrows)):
  if table_one.cell_value(nrows_one, 0) == site:
   payday = table_one.cell_value(0, 8)
   date = datetime(*xldate_as_tuple(payday, 0))
   payday = date.strftime('%Y/%m/%d')         # 出票日期
   sales = float(table_one.cell_value(nrows_one, 1))     # 销量
   quantity_ticket = int(table_one.cell_value(nrows_one, 2))   # 票数
   rate_electronic = float(table_one.cell_value(nrows_one, 3))  # 电子直销占比
   sales_thanlastweek = float(table_one.cell_value(nrows_one, 4))  # 销量同比上周
   sales_thanlastyear = float(table_one.cell_value(nrows_one, 5))  # 销量同比去年
   break
 # 遍历sheet2
 for nrows_two in range(1, int(table_two.nrows)):
  if table_one.cell_value(nrows_two, 0) == site:
   session = int(table_two.cell_value(nrows_two, 1))     # 访问量
   rate_conversion = float(table_two.cell_value(nrows_two, 2))  # 转化率
   rate_paysuccess = float(table_two.cell_value(nrows_two, 3))  # 支付成功率
   session_thanlastweek = float(table_two.cell_value(nrows_two, 4)) # 访问量同比上周
   break
 # 将数据存入数据库
 sql = "insert into sales_data(SITE, PAYDAY, SALES, QUANTITY_TICKET, RATE_ELECTRONIC, SALES_THANLASTWEEK," \
   "SALES_THANLASTYEAR, SESSION, SESSION_THANLASTWEEK, RATE_CONVERSION, RATE_PAYSUCCESS)" \
   " values ('%s','%s', %f, %d, %f, %f, %f, %d, %f, %f, %f)" %\
   (site, payday, sales, quantity_ticket, rate_electronic, sales_thanlastweek, sales_thanlastyear,
   session, session_thanlastweek, rate_conversion, rate_paysuccess)
 try:
  # 使用 cursor() 方法创建一个游标对象 cursor
  cursor = db.cursor()
  cursor.execute(sql)
 except Exception as e:
  # 发生错误时回滚
  db.rollback()
  print(str(e))
 else:
  db.commit() # 事务提交
  print('事务处理成功')

以上这篇Python3读取Excel数据存入MySQL的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
Python 在函数上添加包装器
Jul 28 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
asyncio异步编程之Task对象详解
Mar 13 Python
详解Django之admin组件的使用和源码剖析
May 04 #Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 #Python
使用python3+xlrd解析Excel的实例
May 04 #Python
对python中的xlsxwriter库简单分析
May 04 #Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 #Python
Python实现获取前100组勾股数的方法示例
May 04 #Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 #Python
You might like
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
Python数据集切分实例
2018/12/08 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
Python微信操控itchat的方法
2019/05/31 Python
python里 super类的工作原理详解
2019/06/19 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
python中列表的含义及用法
2020/05/26 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
行政助理岗位职责范文
2013/12/03 职场文书
工程管理专业个人求职信范文
2013/12/07 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
党员民主生活会材料
2014/12/15 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
spring boot中nativeQuery的用法
2021/07/26 Java/Android