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

打印 上一主题 下一主题

主题 1953|帖子 1953|积分 5859

 

  • 准备好Excel数据表
    格式:只需小标题行和数据即可,如下图雷同表格

    注意:表格中只管不要有空内容!!!大概会无法插入到数据库!!!
  • 数据库建表
    方式一:利用图形化界面Navicat for MySQL软件来操纵
    ①、毗连指定数据库(双击指定数据库)

    ②、点击右上角新建查询

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

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

    方式二:利用命令行来新建数据表
    ①、进入指定数据库

    ②、编写建表语句并实行
    1. CREATE TABLE `students`
    2. (
    3.         stu_id VARCHAR(255) NOT NULL PRIMARY KEY COMMENT "学号",
    4.         stu_name VARCHAR(255) NOT NULL COMMENT "姓名",
    5.         stu_gender VARCHAR(255) NOT NULL COMMENT "性别"
    6. );
    复制代码

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

  • python安装pymysql库(操纵MySQL数据库)和openpyxl库(读取Excel数据)
    1. pip install pymysql
    复制代码
    1. pip install openpyxl
    复制代码
  • 开始编写python代码
    步骤:
    1、导入所需库
    1. # 导入读取Excel的库
    2. from openpyxl import load_workbook
    3. # 导入操作mysql的库
    4. import pymysql
    复制代码

    2、从Excel表中读取所有数据
    1. # 文件路径
    2. file = "./存放数据的Excel表格文件路径"
    3. # 打开Excel文件
    4. wb = load_workbook(file)
    5. # 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推
    6. data_sheet = wb.worksheets[0]
    复制代码

    3、将数据取出来存放到列表
    1. # 存放数据的列表
    2. all_data = []
    3. # 循环从sheet表中读取数据
    4. for i in range(2, data_sheet.max_row + 1):  # 读取从第二行(第一行是标题)到最后一行的内容
    5.     row_list = []  # 存放每行数据的小列表
    6.     for row in data_sheet[i]:
    7.         row_list.append(str(row.value))  # 将数据转换成字符串后插入到小列表中
    8.     all_data.append(row_list)  # 将小列表插入到大列表中
    复制代码

    4、毗连MySQL数据库
    1. # 连接数据库
    2. conn = pymysql.connect(host='localhost', user='root', passwd='root')
    3. # 创建游标对象
    4. cursor = conn.cursor()
    5. # 进入指定数据库
    6. cursor.execute("USE `my_data`;")
    复制代码

    5、根据数据拼接sql语句,实行语句,此处的data为一条数据,想要取得第一列的内容例如学号,那就是索引0,姓名就是索引1,以此类推
    1. # 写好预设sql
    2. s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"
    3. # 循环取出数据列表中的每一行数据
    4. for data in all_data:
    5.     # 拼接sql
    6.     sql = s % (data[0], data[1], data[2])
    7.     # 执行sql
    8.     cursor.execute(sql)
    复制代码

    6、提交事件、插入完成
    1. # 提交事务,不然MySQL不会成功插入数据
    2. conn.commit()
    3. # 打印成功信息
    4. print("所有数据插入成功!")
    复制代码
    7、查看数据库
    方式一:Navicat for MySQL

    方式二:cmd
     
    1. # 查询表students中的所有数据
    2. SELECT * FROM `students`;
    复制代码

代码总和(抄作业的同学可以直接跳转)
 
  1. # --coding=utf-8# 导入读取Excel的库
  2. from openpyxl import load_workbook
  3. # 导入操作mysql的库
  4. import pymysql# 文件路径
  5. file = "./存放数据的Excel表格文件路径"
  6. # 打开Excel文件
  7. wb = load_workbook(file)
  8. # 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推
  9. data_sheet = wb.worksheets[0]# 存放数据的列表
  10. all_data = []
  11. # 循环从sheet表中读取数据
  12. for i in range(2, data_sheet.max_row + 1):  # 读取从第二行(第一行是标题)到最后一行的内容
  13.     row_list = []  # 存放每行数据的小列表
  14.     for row in data_sheet[i]:
  15.         row_list.append(str(row.value))  # 将数据转换成字符串后插入到小列表中
  16.     all_data.append(row_list)  # 将小列表插入到大列表中# 连接数据库
  17. conn = pymysql.connect(host='localhost', user='root', passwd='root')
  18. # 创建游标对象
  19. cursor = conn.cursor()
  20. # 进入指定数据库
  21. cursor.execute("USE `my_data`;")# 写好预设sql
  22. s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"
  23. # 循环取出数据列表中的每一行数据
  24. for data in all_data:
  25.     # 拼接sql
  26.     sql = s % (data[0], data[1], data[2])
  27.     # 执行sql
  28.     cursor.execute(sql)# 提交事务,不然MySQL不会成功插入数据
  29. conn.commit()
  30. # 打印成功信息
  31. print("所有数据插入成功!")
复制代码
注意事项
 1、只管在MySQL数据表中字段利用VARCHAR类型,也就是字符串、文本类型,以防止插入数据时报错。如果必须利用其他类型例如数字类型,那么在拼接sql语句的时候一定要注意符号,防止由于插入数据类型不对而报错。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表