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循环语句中else的用法总结
Sep 11 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
python中logging库的使用总结
Oct 18 Python
python读取和保存视频文件
Apr 16 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
Django REST framwork的权限验证实例
Apr 02 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
python访问hdfs的操作
Jun 06 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 Python
Python 图片添加美颜效果
Apr 28 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
社区(php&&mysql)一
2006/10/09 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
Python运算符+与+=的方法实例
2021/02/18 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
会计专业推荐信
2013/10/29 职场文书
少儿节目主持串词
2014/04/02 职场文书
大学生求职信范文
2014/05/24 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
爱心捐款感谢信
2015/01/20 职场文书
工商行政处罚决定书
2015/06/24 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书