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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
python安装oracle扩展及数据库连接方法
Feb 21 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
Python SQLite3简介
Feb 22 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
Python Image模块基本图像处理操作小结
Apr 13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
Python实现打包成库供别的模块调用
Jul 13 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 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永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
百度地图API使用方法详解
2015/08/25 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
浅谈vuex中store的命名空间
2019/11/08 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现类继承实例
2014/07/04 Python
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
python类继承用法实例分析
2015/05/27 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
《雨点儿》教学反思
2014/04/14 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
学年个人总结范文
2015/03/05 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
关于MySQL中的 like操作符详情
2021/11/17 MySQL
MySQL如何使备份得数据保持一致
2022/05/02 MySQL
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers