找回密码
 会员注册
查看: 33|回复: 0

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

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
72242
发表于 2024-9-7 16:34:40 | 显示全部楼层 |阅读模式
准备好Excel数据表格式:只需小行和数据即可,如下图类似表格注意:表格中尽量不要有空内容!!!可能会无法插入到数据库!!!数据库建表方式一:使用图形化界面NavicatforMySQL软件来操作①、连接指定数据库(双击指定数据库)②、点击右上角新建查询③、在新建的查询中编写建表的SQL语句并执行④、到此处数据表就已经创建成功了方式二:使用命令行来新建数据表①、进入指定数据库②、编写建表语句并执行CREATETABLE`students`( stu_idVARCHAR(255)NOTNULLPRIMARYKEYCOMMENT"学号", stu_nameVARCHAR(255)NOTNULLCOMMENT"姓名", stu_genderVARCHAR(255)NOTNULLCOMMENT"性别");③、此时数据表就新建成功了python安装pymysql库(操作MySQL数据库)和openpyxl库(读取Excel数据)pipinstallpymysqlpipinstallopenpyxl开始编写python代码步骤:1、导入所需库#导入读取Excel的库fromopenpyxlimportload_workbook#导入操作mysql的库importpymysql2、从Excel表中读取所有数据#文件路径file="./存放数据的Excel表格文件路径"#打开Excel文件wb=load_workbook(file)#获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推data_sheet=wb.worksheets[0]3、将数据取出来存放到列表#存放数据的列表all_data=[]#循环从sheet表中读取数据foriinrange(2,data_sheet.max_row+1):#读取从第二行(第一行是)到最后一行的内容row_list=[]#存放每行数据的小列表forrowindata_sheet[i]:row_list.append(str(row.value))#将数据转换成字符串后插入到小列表中all_data.append(row_list)#将小列表插入到大列表中4、连接MySQL数据库#连接数据库conn=pymysql.connect(host='localhost',user='root',passwd='root')#创建游标对象cursor=conn.cursor()#进入指定数据库cursor.execute("USE`my_data`;")5、根据数据拼接sql语句,执行语句,此处的data为一条数据,想要取得第一列的内容例如学号,那就是索引0,姓名就是索引1,以此类推#写好预设sqls="INSERTINTO`students`(stu_id,stu_name,stu_gender)VALUES('%d','%d','%d');"#循环取出数据列表中的每一行数据fordatainall_data:#拼接sqlsql=s%(data[0],data[1],data[2])#执行sqlcursor.execute(sql)6、提交事务、插入完成#提交事务,不然MySQL不会成功插入数据conn.commit()#打印成功信息print("所有数据插入成功!")7、查看数据库方式一:NavicatforMySQL方式二:cmd #查询表students中的所有数据SELECT*FROM`students`;代码总和(抄作业的同学可以直接跳转) #--coding=utf-8#导入读取Excel的库fromopenpyxlimportload_workbook#导入操作mysql的库importpymysql#文件路径file="./存放数据的Excel表格文件路径"#打开Excel文件wb=load_workbook(file)#获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推data_sheet=wb.worksheets[0]#存放数据的列表all_data=[]#循环从sheet表中读取数据foriinrange(2,data_sheet.max_row+1):#读取从第二行(第一行是)到最后一行的内容row_list=[]#存放每行数据的小列表forrowindata_sheet[i]:row_list.append(str(row.value))#将数据转换成字符串后插入到小列表中all_data.append(row_list)#将小列表插入到大列表中#连接数据库conn=pymysql.connect(host='localhost',user='root',passwd='root')#创建游标对象cursor=conn.cursor()#进入指定数据库cursor.execute("USE`my_data`;")#写好预设sqls="INSERTINTO`students`(stu_id,stu_name,stu_gender)VALUES('%d','%d','%d');"#循环取出数据列表中的每一行数据fordatainall_data:#拼接sqlsql=s%(data[0],data[1],data[2])#执行sqlcursor.execute(sql)#提交事务,不然MySQL不会成功插入数据conn.commit()#打印成功信息print("所有数据插入成功!")注意事项 1、尽量在MySQL数据表中字段使用VARCHAR类型,也就是字符串、文本类型,以防止插入数据时报错。如果必须使用其他类型例如数字类型,那么在拼接sql语句的时候一定要注意符号,防止因为插入数据类型不对而报错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-11 05:44 , Processed in 0.561217 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表