Python将Excel表中数据插入MySQL(附代码总结,可直接抄作业)

Q3493620082 2024-08-05 11:05:03 阅读 70

 

准备好Excel数据

格式:只需小标题行和数据即可,如下图类似表格

38d91ec3669d487e8070b7f562ccc72d.png

注意:表格中尽量不要有空内容!!!可能会无法插入到数据库!!!数据库建表

方式一:使用图形化界面Navicat for MySQL软件来操作

①、连接指定数据库(双击指定数据库)

0fa171f824e940d8a673f087d24728b4.png

②、点击右上角新建查询

c7083743abad4ab98ef9cc0f1c93bd94.png

③、在新建的查询中编写建表的SQL语句并执行

cfd6dde9d4ef4a1fb66d323ab0e1a26f.png

④、到此处数据表就已经创建成功了

25b5db2c79394b45a785a7a8110fe6e7.png

方式二:使用命令行来新建数据

①、进入指定数据库

9a2176f7803042989ffe63a8eb73eb86.png

②、编写建表语句并执行

<code>CREATE TABLE `students`

(

stu_id VARCHAR(255) NOT NULL PRIMARY KEY COMMENT "学号",

stu_name VARCHAR(255) NOT NULL COMMENT "姓名",

stu_gender VARCHAR(255) NOT NULL COMMENT "性别"

);

cb08bdc3d19e4a358cf92de5f1e660c4.png

③、此时数据表就新建成功了

2dd2d57d0fcb431491c03a2aefd76c0d.png

python安装pymysql库(操作MySQL数据库)和openpyxl库(读取Excel数据)

<code>pip install pymysql

pip install openpyxl

开始编写python代码

步骤:

1、导入所需库

# 导入读取Excel的库

from openpyxl import load_workbook

# 导入操作mysql的库

import pymysql

2、从Excel表中读取所有数据

# 文件路径

file = "./存放数据的Excel表格文件路径"

# 打开Excel文件

wb = load_workbook(file)

# 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推

data_sheet = wb.worksheets[0]

3、将数据取出来存放到列表

# 存放数据的列表

all_data = []

# 循环从sheet表中读取数据

for i in range(2, data_sheet.max_row + 1): # 读取从第二行(第一行是标题)到最后一行的内容

row_list = [] # 存放每行数据的小列表

for row in data_sheet[i]:

row_list.append(str(row.value)) # 将数据转换成字符串后插入到小列表中

all_data.append(row_list) # 将小列表插入到大列表中

4、连接MySQL数据库

# 连接数据库

conn = pymysql.connect(host='localhost', user='root', passwd='root')code>

# 创建游标对象

cursor = conn.cursor()

# 进入指定数据

cursor.execute("USE `my_data`;")

5、根据数据拼接sql语句,执行语句,此处的data为一条数据,想要取得第一列的内容例如学号,那就是索引0,姓名就是索引1,以此类推

# 写好预设sql

s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"

# 循环取出数据列表中的每一行数据

for data in all_data:

# 拼接sql

sql = s % (data[0], data[1], data[2])

# 执行sql

cursor.execute(sql)

6、提交事务、插入完成

# 提交事务,不然MySQL不会成功插入数据

conn.commit()

# 打印成功信息

print("所有数据插入成功!")

7、查看数据库

方式一:Navicat for MySQL

ec9c090dfc87403186f4f554d9df489a.png

方式二:cmd

 

<code># 查询表students中的所有数据

SELECT * FROM `students`;

d27c4f311a714704938f7cfdf1b90fa0.png

代码总和(抄作业的同学可以直接跳转)

 

<code># --coding=utf-8

# 导入读取Excel的库

from openpyxl import load_workbook

# 导入操作mysql的库

import pymysql

# 文件路径

file = "./存放数据的Excel表格文件路径"

# 打开Excel文件

wb = load_workbook(file)

# 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推

data_sheet = wb.worksheets[0]

# 存放数据的列表

all_data = []

# 循环从sheet表中读取数据

for i in range(2, data_sheet.max_row + 1): # 读取从第二行(第一行是标题)到最后一行的内容

row_list = [] # 存放每行数据的小列表

for row in data_sheet[i]:

row_list.append(str(row.value)) # 将数据转换成字符串后插入到小列表中

all_data.append(row_list) # 将小列表插入到大列表中

# 连接数据库

conn = pymysql.connect(host='localhost', user='root', passwd='root')code>

# 创建游标对象

cursor = conn.cursor()

# 进入指定数据

cursor.execute("USE `my_data`;")

# 写好预设sql

s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"

# 循环取出数据列表中的每一行数据

for data in all_data:

# 拼接sql

sql = s % (data[0], data[1], data[2])

# 执行sql

cursor.execute(sql)

# 提交事务,不然MySQL不会成功插入数据

conn.commit()

# 打印成功信息

print("所有数据插入成功!")

注意事项

 1、尽量在MySQL数据表中字段使用VARCHAR类型,也就是字符串、文本类型,以防止插入数据时报错。如果必须使用其他类型例如数字类型,那么在拼接sql语句的时候一定要注意符号,防止因为插入数据类型不对而报错。

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。