经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
Python 利用pymysql和openpyxl操作MySQL数据库并插入Excel数据
来源:cnblogs  作者:qwerrt9  时间:2023/10/30 9:15:47  对本文有异议

1. 需求分析

本文将介绍如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中。

2. 环境准备

在开始本文之前,请确保您已经安装好了以下环境:

  • Python 3.x
  • PyMySQL库
  • openpyxl库
  • MySQL数据库

3. 连接MySQL数据库

我们可以使用pymysql库来连接MySQL数据库。请先创建一个名为test的MySQL数据库,并在其中创建一个名为yonghu的表。

  1. import pymysql
  2. # 连接到MySQL数据库
  3. mydb = pymysql.connect(
  4. host="localhost",
  5. user="root",
  6. passwd="123456",
  7. db="test"
  8. )

在上述代码中,我们调用了pymysql库中的connect()函数来连接MySQL数据库。其中,host参数是MySQL服务器的主机名或IP地址,user参数是登录MySQL服务器的用户名,passwd参数是登录MySQL服务器的密码,db参数是要连接的数据库名。

4. 打开Excel文件

在Python中,可以使用openpyxl库来读写Excel文件。请先安装好openpyxl库。

  1. from openpyxl import load_workbook
  2. # 打开Excel文件
  3. wb = load_workbook(filename=r'E:\重新开始\Python操作MySQL数据库\sheet1.xlsx')
  4. sheet = wb.active

在上述代码中,我们使用load_workbook()函数加载Excel文件,并使用active属性获取活动工作表。

5. 获取表头

在插入数据之前,我们需要先获取Excel表格的表头信息。

  1. # 获取表头
  2. header = [cell.value for cell in sheet[1]]

在上述代码中,我们遍历第一行的单元格,获取每个单元格的值,作为表头。

6. 遍历Excel数据并插入数据库

接下来,我们遍历Excel文件中的每一行数据,并将其插入到MySQL数据库中。

  1. # 遍历每一行数据,并将其插入到数据库中
  2. cursor = mydb.cursor()
  3. count = 0
  4. for row in sheet.iter_rows(min_row=2, values_only=True):
  5. sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
  6. cursor.execute(sql, row)
  7. count += 1
  8. print(f"正在插入{count}条数据")
  9. # 提交更改并关闭数据库连接
  10. mydb.commit()
  11. cursor.close()
  12. mydb.close()

在上述代码中,我们使用iter_rows()函数从第二行开始遍历每一行数据。在遍历过程中,我们构建了一个插入数据的SQL语句,使用占位符%s,然后使用游标对象执行SQL语句,将行数据插入到MySQL数据库中。

最后,我们提交了对数据库的更改,并关闭了游标对象和与MySQL数据库的连接。

7. 完整代码

最终的Python代码如下:

  1. from openpyxl import load_workbook # 导入load_workbook函数,用于加载Excel文件
  2. import pymysql # 导入pymysql库,用于连接和操作MySQL数据库
  3. # 连接到MySQL数据库
  4. mydb = pymysql.connect(
  5. host="localhost",
  6. user="root",
  7. passwd="123456",
  8. db="test"
  9. )
  10. # 打开Excel文件
  11. wb = load_workbook(filename=r'E:\重新开始\Python操作MySQL数据库\sheet1.xlsx') # 加载Excel文件
  12. sheet = wb.active # 获取活动工作表
  13. # 获取表头
  14. header = [cell.value for cell in sheet[1]] # 获取第一行的单元格值,作为表头
  15. # 遍历每一行数据,并将其插入到数据库中
  16. cursor = mydb.cursor() # 创建游标对象,用于执行SQL语句
  17. count = 0 # 计数器,用于记录插入的数据条数
  18. for row in sheet.iter_rows(min_row=2, values_only=True): # 从第二行开始遍历每一行数据
  19. sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
  20. # 构建插入数据的SQL语句,使用占位符%s
  21. cursor.execute(sql, row) # 执行SQL语句,将行数据插入到数据库中
  22. count += 1 # 每插入一条数据,计数器加1
  23. print(f"正在插入{count}条数据") # 输出插入的数据条数
  24. # 提交更改并关闭数据库连接
  25. mydb.commit() # 提交对数据库的更改
  26. cursor.close() # 关闭游标对象
  27. mydb.close() # 关闭与数据库的连接

8. 总结

本文介绍了如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中。如果您有任何疑问或建议,请在评论区留言。

 

原文链接:https://www.cnblogs.com/lcl-cn/p/17796786.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号