需求:公司需要把两个数据库(A,B)中的数据导入到三个sheet页中,根据文献,有两种方式去解决。分别是用openpyxls和pandas,此处介绍pandas的处理办法。

    代码:

    1. import pandas as pd
    2. import time
    3. import openpyxl
    4. import pymysql
    5. #从数据库中读取数据
    6. # 创建一个MySQL数据库的连接对象
    7. conn = pymysql.connect(
    8. host='112.35.3.232', port=1342,
    9. user='maint01', password='B5@V8B-Wz+53',
    10. database='ipoc_db', charset='utf8mb4'
    11. )
    12. conn2 = pymysql.connect( host='47.104.31.138', port=3306,
    13. user='guest', password='Guest.618',
    14. database='hrs', charset='utf8mb4' )
    15. # 通过SQL从数据库读取数据创建DataFrame,conn表示之前的连接对象,index_col='eno'表示以eno为索引进行查询,如果数据量不大,可以删掉,反之,则有必要声明
    16. df = pd.read_sql("SELECT ud_time,ud_ipocid,display,create_time,ud_defect "
    17. "FROM t_user_defect,t_user,t_group "
    18. "WHERE t_user_defect.ud_ipocid=t_user.us_ipocid "
    19. "AND t_user.us_group_id=t_group.group_id",
    20. conn,index_col='ud_time')
    21. df3 = pd.read_sql('select * from tb_emp', conn2, index_col='eno')
    22. #把数据导出到指定位置,并且生成2个sheet
    23. with pd.ExcelWriter(r'C:\Users\wangjian\Desktop\test\3.xlsx') as writer:
    24. df1 = df.to_excel(writer, sheet_name='df1')
    25. df2 = df.to_excel(writer, sheet_name='df2')
    26. df3 = df3.to_excel(writer, sheet_name='df3')

    结果
    image.png

    参考网址:https://zhuanlan.zhihu.com/p/35316820