主要用到的库有 xlrd 和 pymysql , 注意pymysql不支持python3

篇幅有限,只针对主要操作进行说明

连接数据库

首先pymysql需要连接数据库,我这里连接的是本地数据库(数据库叫lds714610)。

conn = connect( host='localhost', port=3306, database='lds714610',user='root', charset='utf8')# 主要通过cursor来对数据库进行查询,插入等一系列操作
cursor = conn.cursor()#在操作完所有操作后,提交修改,退出数据库
conn.commit()
conn.close()

从excel中读取数据

导入数据之前,需要先读取excel中的数据。

通过xlrd库读取到excel表的数据,返回的数据类型很单一,几乎都是字符类型。所以excel表格中的空也是用""表示的,而不是null或None。

# excel文件
# 第一步打开excel文件,类似普通的文件open操作。注意open_workbook的参数必须是unicode编码
book = open_workbook(fileName[i].decode('utf-8'))# 表格
# 一个excel文件中可能有多个表,可以通过sheets()方法返回关于所有表格的list列表
sheet = book.sheets()[0]   #通过下标可以获取某一个表格# 行 (元组)
# 下面获取一个表格内特定行的特定列的值
sheet.cell_value(i,j)   #表格获取i行j列的值,一般会使用strip()去掉空格# sheet有很多关于表格的属性
tolRows = sheet.nrows  #表格的总行数

向pymysql中写入数据

之后说过对于pymysql通过cursor对数据库进行读写。

对于库pymysql,程序从中读取到的数据类型可能是string、float、datetime等。同时也是使用None表示数据库中的空值,pymysql中 insert into的value如果是空字串"",不会对应mySQL中的NONE,而是同样表示一个空字串。

# 查询
cursor.execute("select TID from Train where TName = %s", TName)# 获取查询结果,fetchall的结果是一个元组,它的每个元素也是元组,并且元素对应select的一个查询结果
# 如rows 可能是 ( (123,), (124,), (125,) ) 这种形式
rows = cursor.fetchall()for r in rows:print(r[0])      #输出TID
# fetchall(self):接收全部的返回结果行.
# fetchone(self):返回一条结果行.
# fetchmany(self, size=None):接收size条返回结果行# 插入多行,rows可能包含多组[TID], 但通过executemany可以用一条语句插入全部
cursor.executemany(“ insert into Train(TID) values(%s) ”, rows)

处理时间数据

使用的库是 datetime 和 xlrd

首先处理excel中的时间类型数据。在使用xlrd读取Excel表格中的日期格式时,读出的内容和原来Excel表格中的内容不一致。读取出来的是一个浮点数。导致不能正确使用。

而xldate_as_tuple方法可以很好地解决这个问题。获取excel中的时间数据使用xlrd的xldate_as_tuple方法。

from xlrd import xldate_as_tuple# 参数一:要处理的单元格值
# 参数二:时间基准(0代表以1900-01-01为基准,1代表以1904-01-01为基准)
# return (year, month, day, hour, minute, nearest_second)
STime = xldate_as_tuple( sheet.cell_value(i,3), 0 )

datetime的数据格式

import datetime#字符串转datetime
nowDateTime = datetime.datetime.strptime('2020-4-30', "%Y-%m-%d")# 直接指定年月日时分秒
nowDateTime = datetime.datetime(2020, 4, 30, 0, 0, 0)#datetime转字符串
nowDateTime.strftime("%Y-%m-%d %H:%M:%S")# 获取当前时间
today = datetime.datetime.now()

%Y-%m-%d %H:%M:%S是datetime类型数据的一般格式,可以使用 nowDateTime.date() 方法去掉时分秒,但是得到的是 datetime.date 类型的数据,格式为 %Y-%m-%d 。

因此如果要将datetime中的时分秒清0,方法是先将其转为“%Y-%m-%d”格式的字符串,再将字符串转为datetime类型数据。

时间类型的计算

datetime类型可以很方便的进行时间上的运行,如计算1天后、10天前、5分钟后或1小时前的年月日时分秒。

# 计算5分钟后的时间
after5Min = nowDateTime + timedelta( minutes = 5 )
# 以此类推timedelta的形参还有days, hours等等

注意 nowDateTime.date() + timedelta( minutes = 5 ) 的结果里,时分秒一直是0,因为它是date类型。

利用python将excel数据导入mySQL相关推荐

  1. Python实现Excel数据导入MySQL

    前言 近年来,数据分析正在改变我们的工作方式,数据分析的相关工作也越来越受到人们的青睐.很多编程语言都可以做数据分析,比如Python.B.Matlab等,Python凭借着自身无可比拟的优势,被广泛 ...

  2. python接入excel_使用python将excel数据导入数据库过程详解

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  3. python将EXCEL数据导入数据库时日期型数据变成数字并加.0的问题一行代码解决方案方案

    [问题描述]:python将EXCEL数据导入数据库时日期变成文本型数据并显示为数字格式 [解决方案] 数据源: codes: #!/usr/bin/python3 -- coding: utf-8 ...

  4. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 "我的面试感悟"有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结 ...

  5. navcat导入mysql bak_navcat excel数据导入mysql的方法

    navcat excel数据导入mysql的方法 先navcat导出 xls格式 然后把数据复制到往这个xls里 (按照这个xls格式) 然后导入mysql就行了 如果导入的过程无法识别excel里的 ...

  6. excel数据导入mysql被截取,从EXCEL导入数据库数值型都被四舍五入了-excel导入mysql数据库...

    excel数据导入mysql有什么好办法 使用Navicat 连接导入的数据库. excel 列的名字最好和数据库字一致,便们直查看好理解. 第一步,先创建好表,和准备好对应的excel文件.在Nav ...

  7. 使用python将excel数据导入数据库

    https://www.cnblogs.com/longbigbeard/p/9309180.html 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 py ...

  8. python将excel数据导入ppt_使用python将excel数据导入数据库

    因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接丢代码,使用python3,注释比较清楚. ...

  9. php将excel数据导入mysql表中_【PHP】将EXCEL表中的数据轻松导入Mysql数据表

    在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在"phpmyadmin"中建立数据库与表(数据库:excel,数据表: ...

最新文章

  1. 奇瑞s61鸿蒙,数码提前曝光,奇瑞新能源 S61 将搭载华为鸿蒙车机系统
  2. 反射就是获取该类的.class文件里面的方法,属性
  3. webGIS(离线版)研究路线归总
  4. vim中使用split
  5. python find next_美化组4,findNext()函数
  6. 《终身成长》读书笔记(part6)--真正的自信来源于你的思维模式:你已经做好了成长的准备
  7. 知己知彼,百战百胜!如何做好干系人管理
  8. 使用MySQL自带工具mysqlhotcopy快速备份MyISAM引擎的MySQL数据库
  9. [转载] Python:Numpy详解
  10. Windows编译OpenCV
  11. 2021-09-14Apriori 算法是基于关联规则的高效数 据挖掘算法
  12. 计算机需要那些高中数学知识点,高中数学知识点(高中数学知识点最全版)
  13. IMU标定——椭球拟合
  14. ASR项目实战-架构设计
  15. 函数空间(巴纳赫空间、欧几里得空间、希尔伯特空间)
  16. 新房和二手房税费比较
  17. sdk是什么_动态贴纸在美颜sdk中起着什么作用
  18. 一款免杀远控,马子体积小
  19. MySQL一般读作什么_MySQL入门必做练习题50题(一) 创建表
  20. 黑吧安全网--古墓探秘

热门文章

  1. 【GO】golang 的new 和 make
  2. [Ahoi2013]连通图
  3. 单多晶技术拉锯战升级
  4. Android SD卡
  5. 用位运算实现求绝对值-有效避开if-else判断
  6. 关于cacti图形显示不正常的解决办法
  7. 富爸爸系列之三富爸爸投资指南
  8. 发布:偶写的NHibernate代码生成器
  9. 面试官系统精讲Java源码及大厂真题 - 39 经验总结:不同场景,如何使用线程池
  10. Hibernate多对多映射 - 连接表