需求:公司需要把两个数据库(A,B)中的数据导入到三个sheet页中,根据文献,有两种方式去解决。分别是用openpyxls和pandas,此处介绍pandas的处理办法。
代码:
import pandas as pdimport timeimport openpyxlimport pymysql#从数据库中读取数据# 创建一个MySQL数据库的连接对象conn = pymysql.connect(host='112.35.3.232', port=1342,user='maint01', password='B5@V8B-Wz+53',database='ipoc_db', charset='utf8mb4')conn2 = pymysql.connect( host='47.104.31.138', port=3306,user='guest', password='Guest.618',database='hrs', charset='utf8mb4' )# 通过SQL从数据库读取数据创建DataFrame,conn表示之前的连接对象,index_col='eno'表示以eno为索引进行查询,如果数据量不大,可以删掉,反之,则有必要声明df = pd.read_sql("SELECT ud_time,ud_ipocid,display,create_time,ud_defect ""FROM t_user_defect,t_user,t_group ""WHERE t_user_defect.ud_ipocid=t_user.us_ipocid ""AND t_user.us_group_id=t_group.group_id",conn,index_col='ud_time')df3 = pd.read_sql('select * from tb_emp', conn2, index_col='eno')#把数据导出到指定位置,并且生成2个sheetwith pd.ExcelWriter(r'C:\Users\wangjian\Desktop\test\3.xlsx') as writer:df1 = df.to_excel(writer, sheet_name='df1')df2 = df.to_excel(writer, sheet_name='df2')df3 = df3.to_excel(writer, sheet_name='df3')
结果
