mysql 数据转excel文件

mysql 数据转excel文件

缘由

为售后拉取数据,用navicat太墨迹了,用python写一个main方法跑一下;

1.抽取共同方法,封装成传入mysql,直接下载成excel;

2.写入所有sql语句,传入参数;

代码

python 复制代码
'''
@Author: Jeff.zheng
@Date : 2024/4/27
@Desc : mysql 转成excel文件
'''

import json
import os
import time
from datetime import datetime
import pandas as pd
import pymysql.cursors
from future.backports.datetime import timedelta


# 获取游标
def getCursor():
    # 创建连接
    Connection = pymysql.connect(
        host='127.0.0.1',  # 数据库主机地址
        user='root',  # 数据库用户名
        password='123456',  # 数据库密码
        db='cloud3',  # 数据库名
        cursorclass=pymysql.cursors.DictCursor  # 使用DictCursor以字典形式返回查询结果
    )

    cursorOfConnection = Connection.cursor()
    return cursorOfConnection


# 获取结果
def getResultBySql(cursorOfConnection, sql):
    try:
        cursorOfConnection.execute(sql)
        # 获取查询结果
        Result = cursorOfConnection.fetchall()
        return Result
    except Exception as e:
        print(e)
        cursorOfConnection.close()


def exportExcelByList(listData, dateName, fileName):
    df = pd.DataFrame(listData)
    # 设置表头
    need_path = os.path.join(os.path.expanduser("~"), "Desktop") + '/测试文件夹-' + dateName
    os.makedirs(need_path, exist_ok=True)
    fileNamePath = os.path.join(need_path, fileName + '.xlsx')
    df.to_excel(fileNamePath, index=None)
    # 这里可以格式化或者别的,太麻烦暂不处理;


def sqlToExcel(myCursor, sql, dateName, xlsxName):
    print(xlsxName + "-开始-" + datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    sqlResultList = getResultBySql(myCursor, sql)
    exportExcelByList(sqlResultList, dateName, xlsxName)
    print(xlsxName + "-结束-" + datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "\n")


if __name__ == '__main__':
    cursor = getCursor()
    date = "2024-04-28"
    dateAddOne = (datetime.strptime(date, '%Y-%m-%d') + timedelta(days=1)).strftime('%Y-%m-%d')

    sql0 = "SELECT col_device_id  as '所有出货的设备ID'  FROM cj_all_bed "
    sqlToExcel(cursor, sql0, date, "0-所有出货的设备ID")

多表最后效果图


相关推荐
学编程的小程1 天前
从“单模冲锋”到“多模共生”——2026 国产时序数据库新物种进化图谱
数据库·时序数据库
卓怡学长1 天前
m111基于MVC的舞蹈网站的设计与实现
java·前端·数据库·spring boot·spring·mvc
存在的五月雨1 天前
Redis的一些使用
java·数据库·redis
小冷coding1 天前
【MySQL】MySQL 插入一条数据的完整流程(InnoDB 引擎)
数据库·mysql
鲨莎分不晴1 天前
Redis 基本指令与命令详解
数据库·redis·缓存
专注echarts研发20年1 天前
工业级 Qt 业务窗体标杆实现・ResearchForm 类深度解析
数据库·qt·系统架构
wtsolutions1 天前
JSON to Excel Add-in - Seamless Integration Within Excel
json·excel
wtsolutions1 天前
Getting Started with JSON to Excel Web App - Convert in Seconds
json·excel·web app
周杰伦的稻香1 天前
MySQL中常见的慢查询与优化
android·数据库·mysql
冉冰学姐1 天前
SSM学生社团管理系统jcjyw(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·学生社团管理系统·多角色管理