coding:utf8
import sys
import threading
import time
reload(sys)
sys.setdefaultencoding('utf8')
# 注册人数 申请人数
import xlwt
import MySQLdb
import sendPortEmail
def export(host, user, password, dbname, table_name, outputpath):
conn = MySQLdb.connect(host, user, password, dbname, charset='utf8')
cursor = conn.cursor()
# 查询数据库,希望加入多个sheet,比如register,apply,都是来自不同查询语句的结果
sheetname = ['register','apply']
count = cursor.execute(
"SELECT DATE_FORMAT(create_date,'%Y%m%d') days,COUNT(DISTINCT app_user.id) as 'register' FROM app_user GROUP BY days;")
print count
# 重置游标的位置
cursor.scroll(0, mode='absolute')
# 搜取所有结果
results = cursor.fetchall()
# 获取MYSQL里面的数据字段名称
fields = cursor.description
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('table_' + table_name, cell_overwrite_ok=True)
# 写上字段信息
for field in range(0, len(fields)):
sheet.write(0, field, fields[field][0])
# 获取并写入数据段信息
row = 1
col = 0
for row in range(1, len(results) + 1):
for col in range(0, len(fields)):
sheet.write(row, col, u'%s' % results[row - 1][col])
workbook.save(outputpath)
# 日志输入报表生成时间
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) + ':Create .xls success!')
# 释放数据连接
cursor.close()
conn.close()
# 结果测试
if name == "__main__":
export(hostname, username, password, dbname, tablename, outputpath)