当前位置:   article > 正文

python 连接mysql批量sql查询并导出成excel_批量mysql表数据导出python脚本

批量mysql表数据导出python脚本

逻辑:
将配置的所有sql 循环在每一个配置号的mysql连接-库中执行,并分别为每一个连接生成一张标,一个查询sql的结果为1个sheet页

用法:
1. 配置多个Mysql连接、库、文件名
2. 配置SavePath存储路径
3. 配置sql, 格式为列表格式 : sheet页名:sql 多个用,隔开  ["sheet页:sql","sheet页2:sql2"]

导出为多个sheet合并到1个文件

代码:

  1. # -*- coding: utf-8 -*-
  2. """
  3. [url=home.php?mod=space&uid=267492]@file[/url] : 未映射厂商型号结果导出.py
  4. [url=home.php?mod=space&uid=155760]@Project[/url] : pythonToolsProject
  5. [url=home.php?mod=space&uid=686208]@AuThor[/url] : aural
  6. [url=home.php?mod=space&uid=621973]@Email[/url] :
  7. @Time : 2023/9/7 11:17
  8. @Description:
  9. """
  10. import time
  11. import pandas as pd
  12. from openpyxl import Workbook
  13. import pymysql
  14. # 存储路径
  15. SavePath= '存储路径'
  16. # MySQL连接配置
  17. dblist = [
  18. {"env": "文件名",
  19. "db_config": {
  20. 'host': 'ip',
  21. 'port': 3306,
  22. 'user': '用户名',
  23. 'password': '密码',
  24. 'database': '库名'
  25. }
  26. },
  27. {"env": "文件名",
  28. "db_config": {
  29. 'host': 'ip',
  30. 'port': 3306,
  31. 'user': '用户名',
  32. 'password': '密码',
  33. 'database': '库名'
  34. }
  35. }
  36. ]
  37. # 读取 SQL 配置文件
  38. # with open('sql.txt', 'r', encoding='utf-8') as file:
  39. # sql_config = file.readlines()
  40. sql_config = [
  41. "sheet1: select * from user;",
  42. "sheet2: select * from class;"
  43. ]
  44. def generate(db_config, env):
  45. # 创建 Excel 文件
  46. workbook = Workbook()
  47. worksheet = workbook.active
  48. # 删除默认的空工作表页
  49. default_sheet = workbook['Sheet']
  50. workbook.remove(default_sheet)
  51. # 建立数据库连接
  52. connection = pymysql.connect(**db_config)
  53. # 遍历每行 SQL 配置
  54. for line in sql_config:
  55. line = line.strip()
  56. if line:
  57. # 解析 sheet 名和 SQL 查询
  58. sheet_name, sql_query = line.split(':')
  59. # 执行 SQL 查询
  60. result = pd.read_sql_query(sql_query, connection)
  61. # 创建工作表,并在第一行添加标题
  62. worksheet = workbook.create_sheet(sheet_name)
  63. worksheet.append(result.columns.tolist())
  64. # 将查询结果写入 Excel
  65. for row in result.iterrows():
  66. worksheet.append(row[1].tolist())
  67. # 关闭数据库连接
  68. connection.close()
  69. # 保存 Excel 文件
  70. workbook.save(SavePath + '' + env + '-' + time.strftime('%Y-%m-%d_%H_%M', time.localtime(
  71. time.time())) + '.xlsx')
  72. if __name__ == '__main__':
  73. for i in dblist:
  74. generate(i["db_config"], i["env"])

PS:excel老版本打开有可能会提示文件错误哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/458366
推荐阅读
相关标签
  

闽ICP备14008679号