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 多进程通信模块的简单实现
Feb 20 Python
python根据日期返回星期几的方法
Jul 06 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
基于Python的文件类型和字符串详解
Dec 21 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
python从入门到精通 windows安装python图文教程
May 18 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
python爬取代理ip的示例
Dec 18 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
限制文本字节数js代码
2007/03/06 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
会计自我鉴定
2014/02/04 职场文书
2014年绿化工作总结
2014/12/09 职场文书
感谢信模板大全
2015/01/23 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python