1.将SQL语句查询的内容,直接写入到excel报表中,以下为全部脚本。
要求:此版本必须运维在windows平台,并且安装了excel程序,excel版本不限。
python版本为2.7
if b 判断b是否为空值
在execl中,列和行都是以0开始
【0】 0 1 2 3
【1】 0 1 2 3
sql语句要求,如果sql语句的条件需要外部传入进去,那么sql语句必须用""号括起来
# -*- coding:utf-8 -*- from xlwt import * import xlrd import pymysql
#建立mysql连接 conn = pymysql.connect(host=\'127.0.0.1\',user=\'root\', passwd=\'1234\', db=\'test\', charset=\'utf8\') cur = conn.cursor() def SQL(cur,sql): cur.execute(sql); return (cur);
#执行sql语句 a=SQL(cur, r"select * from test;")
#打开一个execle文档 w= Workbook(encoding=\'utf-8\') ws= w.add_sheet(u"xls")
i=1 f = [\'id\', \'名字\']
#通过循环,将列明插入进去。 g = 0 for x in f: fnt = Font() style = XFStyle() style.font = fnt ws.write(0, g, x) ws.row(i).set_style(style) g = g + 1 try:
#遍历sql语句查询到的内容 for b in a: fnt = Font() style = XFStyle() style.font = fnt for f in range(0,len(b)): ws.write(i, f, \'%s\' %b[f]) ws.row(i).set_style(style) i = i + 1 if b: w.save(u"测试.xls") except Exception as e: print(e) cur.close() conn.close()
2.使用pandas导出
#!/usr/bin/env python #-*- coding: utf8 -*- from sqlalchemy import create_engine import pymysql import pandas as pd from pandas import DataFrame,Series # 数据库连接 engine=create_engine(\'mysql+pymysql://username:password@192.168.1.1/database_name?charset=gbk\') sql="select count(*) as \'总数\' from database.table1;" sql.encode(\'gb18030\') # pd.read_sql(sql语句,数据库连接) 数据库连接支持pymysql.connect(),cx_Oracle.connect()等。 df=pd.read_sql(sql,engine) # 创建excel writer = pd.ExcelWriter(\'/root/output.xlsx\') # 生成excel文档,默认支持DataFrame数据类型 df.to_excel(writer,\'Sheet1\',index=False) writer.save()