python自动生成excel报表
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()
每天学习一点点,重在积累!