python3 excel导入mysql_Python3将excel中的数据导入mysql数据库

该博客展示了如何使用Python的pymysql和openpyxl库将Excel文件中的数据导入到MySQL数据库中。首先,通过openpyxl读取.xlsx文件,然后遍历每一行数据,将其转换为适当的数据类型,最后利用pymysql的游标执行SQL插入语句将数据存入数据库。此外,还提供了从数据库中读取并打印所有数据的函数。
摘要由CSDN通过智能技术生成

import pymysql

# xlrd 为 python 中读取 excel 的库,支持.xls 和 .xlsx 文件

# import xlrd

# openpyxl 库支持 .xlsx 文件的读写

from openpyxl.reader.excel import load_workbook

from builtins import int

#cur 是数据库的游标连接,path 是 excel 文件的路径

def importExcelToMysql(cur, path):

### xlrd版本

# 读取excel文件

# workbook = xlrd.open_workbook(path)

# sheets = workbook.sheet_names()

# worksheet = workbook.sheet_by_name(sheets[0])

###

### openpyxl版本

# 读取excel文件

workbook = load_workbook(path)

# 得到全部工做表的名字

sheets = workbook.get_sheet_names()

# 得到第一张表

worksheet = workbook.get_sheet_by_name(sheets[0])

###

### xlrd版本

# 将表中数据读到 sqlstr 数组中

# for i in range(1, worksheet.nrows):

# row = worksheet.row(i)

#

# sqlstr = []

#

# for j in range(0, worksheet.ncols):

# sqlstr.append(worksheet.cell_value(i, j))

###

### openpyxl版本

# 将表中每一行数据读到 sqlstr 数组中

for row in worksheet.rows:

sqlstr = []

for cell in row:

sqlstr.append(cell.value)

###

valuestr = [str(sqlstr[0]), int(sqlstr[1]), int(sqlstr[2]), int(sqlstr[3])]

# 将每行数据存到数据库中

cur.execute("insert into student(姓名, 语文, 数学, 英语) values(%s, %s, %s, %s)", valuestr)

# 输出数据库中内容

def readTable(cursor):

# 选择所有

cursor.execute("select * from student")

# 得到返回值,返回多条记录,若没有结果则返回()

results = cursor.fetchall()

for i in range(0, results.__len__()):

for j in range(0, 4):

print(results[i][j], end='\t')

print('\n')

if __name__ == '__main__':

# 和数据库创建链接

conn = pymysql.connect('localhost', 'root', '123456', charset='utf8')

# 建立游标连接

cur = conn.cursor()

# 新建一个database

cur.execute("drop database if exists students")

cur.execute("create database students")

# 选择 students 这个数据库

cur.execute("use students")

# sql中的内容为建立一个名为student的表

sql = """CREATE TABLE IF NOT EXISTS `student` (

`姓名` VARCHAR (20),

`语文` INT,

`数学` INT,

`英语` INT

)"""

# 若是存在student这个表则删除

cur.execute("drop table if exists student")

# 建立表

cur.execute(sql)

# 将 excel 中的数据导入 数据库中

importExcelToMysql(cur, "./student.xlsx")

readTable(cur)

# 关闭游标连接

cur.close()

conn.commit()

# 关闭数据库服务器链接,释放内存

conn.close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值