【python】导出mysql数据,输出excel!

今天来说说,如果想要导出数据库里面的数据,并生成excel表格,该怎么操作,比较简单!

一.环境配置

这边需要安装pandas、pymysql、openpyxl三个库

os库 循环遍历安装所有库:

##想要安装的库的列表
libs = ["pandas","pymysql","openpyxl"]
 
###循环遍历安装
for lib in libs:
    os.system("pip install " + lib)

二.实际应用

1.首先我们运用pymysql库与数据库建链:

import pymysql

db = pymysql.connect(
    host="localhost", 
    port=3306,
    user='xxx',    #在这里输入用户名
    password='xxx',     #在这里输入密码
    charset='utf8mb4' 
    ) #连接数据库

2.连接上数据库后,我们建立游标对象,以及定义sql指令:

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() #创建游标对象
sql = 'show databases' #sql语句

cursor.execute(sql)  #执行sql语句

sql = 'use xxxx;' #sql语句
cursor.execute(sql)  #执行sql语句

3.然后运用pandas的pd.read_sql()函数:将SQL查询或数据库表读入DataFrame

df=pd.read_sql("""SELECT * FROM xxxx""",con=db)

con:连接SQL数据库的Engine,一般用SQLAlchemy或者是PyMysql之类的模块来建立。

4.openpyxl库生成excel表格

df.to_excel(r'表格1.xlsx',index=False)

完整代码:

import pymysql
import pandas as pd
import openpyxl

db = pymysql.connect(
    host="localhost", 
    port=3306,
    user='xxx',    #在这里输入用户名
    password='xxx',     #在这里输入密码
    charset='utf8mb4' 
    ) #连接数据库

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor() #创建游标对象
sql = 'show databases' #sql语句

cursor.execute(sql)  #执行sql语句

sql = 'use xxxx;' #sql语句
cursor.execute(sql)  #执行sql语句

df=pd.read_sql("""SELECT * FROM xxxx""",con=db)

df.to_excel(r'表格1.xlsx',index=False)

三.总结

这样就完成了数据库表导出了,谢谢!

@Neng

你可能感兴趣的:(python,pandas,openpyxl,pymysql)