python导出mysql查询结果到excel_python查询mysql数据并导入到excel表中

#!/usr/bin/python

# -*- coding: utf-8 -*-

import pymysql

import sshtunnel

import xlsxwriter

def get_sshData2(sql):

with sshtunnel.SSHTunnelForwarder(

ssh_address_or_host='********',

ssh_port=***,

ssh_username='***',

ssh_password='******',

remote_bind_address=('*****',3306)

) as tunnel:

conn=pymysql.connect(host='***',user='***', passwd='***', db='***', port=tunnel.local_bind_port, charset='utf8');

cursor = conn.cursor();

cursor.execute(sql);

# 使用 fetchone() 方法获取单条数据.

results = cursor.fetchall()

print(results)

# 关闭数据库连接

conn.close()

# 返给结果给函数调用者。

return results

def writer_data_to_excel():

sql = "select from_unixtime(reg_time, '%Y-%m-%d')as dd,count(*) from deayou_users where from_unixtime(reg_time, '%Y-%m')='2018-08' and internal_status=0 group by dd ";

results = get_sshData2(sql)

#新建文档

workbook=xlsxwriter.Workbook('11.xlsx')

#创建sheet页

worksheet1=workbook.add_worksheet('注册表')

#设置列宽

worksheet1.set_column("A:A", 14) # 设定A列列宽为40

#添加标题

title=['日期','注册人数']

worksheet1.write_row('A1',title)

#遍历结果集中的每个元素,将数据写入新建的sheet页中

for i in range(len(results)):

for j in range(len(results[i])):

worksheet1.write(i+1,j,results[i][j])

#查询第二条语句

sql1 = "select from_unixtime(addtime, '%Y-%m-%d')as dd,sum(mount/100) from d_order where from_unixtime(addtime, '%Y-%m')='2018-08' and borrow_nid>0 and user_Id not in (349,4833) group by dd ";

results1 = get_sshData2(sql1)

# 创建sheet页

worksheet2 = workbook.add_worksheet('转化表')

# 设置列宽

worksheet2.set_column("A:A", 14) # 设定A列列宽为40

# 添加标题

title1 = ['日期', '转化金额']

worksheet2.write_row('A1', title1)

# 遍历结果集中的每个元素,将数据写入新建的sheet页中

for i in range(len(results1)):

for j in range(len(results1[i])):

worksheet2.write(i + 1, j, results1[i][j])

#查询第三条语句

sql2 = "SELECT FROM_UNIXTIME(yestime,'%Y-%m-%d')dd,SUM(mount/100) FROM d_recover WHERE STATUS=1 AND FROM_UNIXTIME(recover_yestime,'%Y-%m')='2018-08' GROUP BY dd ";

results2 = get_sshData2(sql2)

# 创建sheet页

worksheet3 = workbook.add_worksheet('下载表')

# 设置列宽

worksheet3.set_column("A:A", 14) # 设定A列列宽为14

# 添加标题

title2 = ['日期', '下载人数']

worksheet3.write_row('A1', title2)

# 遍历结果集中的每个元素,将数据写入新建的sheet页中

for i in range(len(results2)):

for j in range(len(results2[i])):

worksheet3.write(i + 1, j, results2[i][j])

workbook.close()

#调用上面的方法写入

writer_data_to_excel()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值