前言
Hello,各位小伙伴大家好,我是紫水晶的微光。本篇文章介绍Python的xlrd模块及pymysql模块的用法。快来跟我一起学习吧!
一、xlrd
1、什么是xlrd?
xlrd是Python操作读取excel的库。
2、用法
- 导入xlrd模块
import xlrd
- 打开Excel表
book = xlrd.open_workbook(r"体温表.xlsx",encoding_override=True)
第一个参数为excel表所在路径,如果路径里有中文,需要在路径前面写个r。
- 获取选项卡
(1)通过索引获取(索引从0开始)
sheet = book.sheet_by_index(0)
(2)通过名字获取
sheet = book.sheet_by_name("体温记录")
- 获取行数和列数
(1)获取excel表行数
rows = sheet.nrows
(2)获取excel表列数
cols = sheet.ncols
- 获取数据(从excel表左上角为原点向右从0开始获取列数据,向下从0开始获取行数据)
(1)横向获取数据
for i in range(rows):
data = sheet.row_values(i)
(2)纵向获取数据
for i in range(cols):
data = sheet.col_values(i)
二、pymysql
1、什么是pymysql?
PyMySQL是Python连接MySQL数据库服务器的接口。
2、用法
- 导入pymysql模块
import pymysql
- 连接MySQL数据库
con = pymysql.connect(host=host,user=user,password=password,database=database,charset="utf8")
host:连接数据库的主机地址
user:数据库的用户名
password:数据库的密码
database:数据库的名称
charset:数据库的字符编码集
- 获取游标
cur = con.cursor()
- 执行sql语句
cur.execute(sql,param)
sql:SQL语句
param:参数
- 提交sql语句
con.commit()
备注: 除了查询不需要提交外,其他都需要提交。
- 关闭资源
cur.close()
con.close()
注意: 关闭资源时遵循先打开的后关闭,后打开的先关闭。
三、案例
案例:将excel表存入数据库
例:excel表内容
- 封装的数据库工具代码:
import pymysql
host = "localhost"
user = "root"
password = "123456"
database = "temperature"
def DMLupdate(sql,param):
con = pymysql.connect(host=host,user=user,password=password,database=database,charset="utf8")
cur = con.cursor()
cur.execute(sql,param)
con.commit()
cur.close()
con.close()
def DQLselect(sql, param,mode="all",size=1):
con = pymysql.connect(host=host,user=user,password=password,database=database,charset="utf8")
cur = con.cursor()
cur.execute(sql,param)
if mode == "all":
return cur.fetchall()
elif mode == "one":
return cur.fetchone()
elif mode == "many":
return cur.fetchmany(size)
cur.close()
con.close()
- 主要代码:
注意: 创建数据库表的时候要设置字符集编码为utf8,否则插入数据库的中文为乱码。
import xlrd
from DataBaseUtils import *
#打开excel表
book = xlrd.open_workbook(r"体温表.xlsx",encoding_override=True)
#获取选项卡
sheet = book.sheet_by_index(0)
#创建数据表
sql = "create table 体温表(姓名 varchar(15)," \
"日期 timestamp," \
"温度 double," \
"联系电话 char(15))DEFAULT CHARSET=utf8;"
param = []
DMLupdate(sql,param)
#获取行数
rows = sheet.nrows
#横向获取数据
for i in range(1,rows):
data = sheet.row_values(i)
#给数据库表里插入数据
sql1 = "insert into 体温表 value (%s,%s,%s,%s)"
date1 = xlrd.xldate.xldate_as_datetime(data[1],0)
param1 = [data[0],date1,data[2],data[3]]
DMLupdate(sql1,param1)
结果:数据库表的内容
总结
本篇文章到这里就结束了,欢迎各位小伙伴点赞、评论、关注。我们共同学习,一起进步!