赞
踩
逻辑:
将配置的所有sql 循环在每一个配置号的mysql连接-库中执行,并分别为每一个连接生成一张标,一个查询sql的结果为1个sheet页
用法:
1. 配置多个Mysql连接、库、文件名
2. 配置SavePath存储路径
3. 配置sql, 格式为列表格式 : sheet页名:sql 多个用,隔开 ["sheet页:sql","sheet页2:sql2"]
导出为多个sheet合并到1个文件
代码:
- # -*- coding: utf-8 -*-
-
- """
- [url=home.php?mod=space&uid=267492]@file[/url] : 未映射厂商型号结果导出.py
- [url=home.php?mod=space&uid=155760]@Project[/url] : pythonToolsProject
- [url=home.php?mod=space&uid=686208]@AuThor[/url] : aural
- [url=home.php?mod=space&uid=621973]@Email[/url] :
- @Time : 2023/9/7 11:17
- @Description:
- """
- import time
-
- import pandas as pd
- from openpyxl import Workbook
- import pymysql
-
- # 存储路径
- SavePath= '存储路径'
- # MySQL连接配置
- dblist = [
- {"env": "文件名",
- "db_config": {
- 'host': 'ip',
- 'port': 3306,
- 'user': '用户名',
- 'password': '密码',
- 'database': '库名'
- }
- },
- {"env": "文件名",
- "db_config": {
- 'host': 'ip',
- 'port': 3306,
- 'user': '用户名',
- 'password': '密码',
- 'database': '库名'
- }
- }
- ]
-
- # 读取 SQL 配置文件
- # with open('sql.txt', 'r', encoding='utf-8') as file:
- # sql_config = file.readlines()
- sql_config = [
- "sheet1: select * from user;",
- "sheet2: select * from class;"
- ]
-
-
- def generate(db_config, env):
- # 创建 Excel 文件
- workbook = Workbook()
- worksheet = workbook.active
-
- # 删除默认的空工作表页
- default_sheet = workbook['Sheet']
- workbook.remove(default_sheet)
-
- # 建立数据库连接
- connection = pymysql.connect(**db_config)
-
- # 遍历每行 SQL 配置
- for line in sql_config:
- line = line.strip()
- if line:
- # 解析 sheet 名和 SQL 查询
- sheet_name, sql_query = line.split(':')
-
- # 执行 SQL 查询
- result = pd.read_sql_query(sql_query, connection)
-
- # 创建工作表,并在第一行添加标题
- worksheet = workbook.create_sheet(sheet_name)
- worksheet.append(result.columns.tolist())
-
- # 将查询结果写入 Excel
- for row in result.iterrows():
- worksheet.append(row[1].tolist())
-
- # 关闭数据库连接
- connection.close()
-
- # 保存 Excel 文件
- workbook.save(SavePath + '' + env + '-' + time.strftime('%Y-%m-%d_%H_%M', time.localtime(
- time.time())) + '.xlsx')
-
-
- if __name__ == '__main__':
- for i in dblist:
- generate(i["db_config"], i["env"])
PS:excel老版本打开有可能会提示文件错误哦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。