python pandas读取数据库sql导出excel

情景1:读取sql为一个excel单个sheet页
import pandas as pd,pymysql
#连接数据库
#sql=
sqldata=pd.read_sql(sql,数据库连接)
sqldata.to_excel(file,index=False)#file为导excel的路径
情景2: 读取sql导出为一个excel的多个sheet页
import pandas as pd,pymysql
#连接数据库
#sql=
sqldata=pd.read_sql(sql,数据库连接)
sqldata1=pd.read_sql(sql,数据库连接)
writer=pd.ExcelWriter(file_name) #多个dataframe导入同一个Excel表格,但是要区分工作簿
sqldata.to_excel(writer,sheetname,index=False)  #可以多个sqldata执行to_excel方法 sheetname为sheet的名称
sqldata1.to_excel(writer,sheetname1,index=False)
writer.save()#必须保存


可以参考:

一张表:存csv

import pandas as pd, pymysql
def db_to_csv(db_name, query, file):
    db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8', db=db_name)
    df =pd.read_sql_query(query, db)
    df.to_csv(file, index=False)
db_to_csv('库名', 'SELECT * FROM 表;', '文件名.csv')

多个sheets:存xlsx

import pandas as pd, pymysql
def db_to_xlsx(db_name, queries, file_name):
    db = pymysql.connect('localhost', 'root', 'yellow', charset='utf8', db=db_name)
    writer = pd.ExcelWriter(file_name)
    for sheet_name, query in queries.items():
        df = pd.read_sql_query(query, db)
        df.to_excel(writer, sheet_name=sheet_name, index=False)
    writer.save()
queries = {
    'sheet1': 'SELECT * FROM 表1;',
    'sheet2': 'SELECT * FROM 表2;',
    'sheet3': 'SELECT * FROM 表3;'}
db_to_xlsx('库名', queries, '文件名.xlsx')

原文:https://blog.csdn.net/Yellow_python/article/details/82380768?utm_source=copy
 

猜你喜欢

转载自blog.csdn.net/qq_24726509/article/details/83038049