Python实现导出数据生成excel报表的方法示例


Posted in Python onJuly 12, 2017

本文实例讲述了Python实现导出数据生成excel报表的方法。分享给大家供大家参考,具体如下:

#_*_coding:utf-8_*_
import MySQLdb
import xlwt
from datetime import datetime
def get_data(sql):
  # 创建数据库连接.
  conn = MySQLdb.connect(host='127.0.0.1',user='root'\
              ,passwd='123456',db='test',port=3306,charset='utf8')
  # 创建游标
  cur = conn.cursor()
  # 执行查询,
  cur.execute(sql)
  # 由于查询语句仅会返回受影响的记录条数并不会返回数据库中实际的值,所以此处需要fetchall()来获取所有内容。
  result = cur.fetchall()
  #关闭游标
  cur.close()
  #关闭数据库连接
  conn.close
  # 返给结果给函数调用者。
  return result
def write_data_to_excel(name,sql):
  # 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)
  result = get_data(sql)
  # 实例化一个Workbook()对象(即excel文件)
  wbk = xlwt.Workbook()
  # 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
  sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
  # 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
  today = datetime.today()
  # 将获取到的datetime对象仅取日期如:2016-8-9
  today_date = datetime.date(today)
  # 遍历result中的没个元素。
  for i in xrange(len(result)):
    #对result的每个子元素作遍历,
    for j in xrange(len(result[i])):
      #将每一行的每个元素按行号i,列号j,写入到excel中。
      sheet.write(i,j,result[i][j])
  # 以传递的name+当前日期作为excel名称保存。
  wbk.save(name+str(today_date)+'.xls')
# 如果该文件不是被import,则执行下面代码。
if __name__ == '__main__':
  #定义一个字典,key为对应的数据类型也用作excel命名,value为查询语句
  db_dict = {'test':'select * from student'}
  # 遍历字典每个元素的key和value。
  for k,v in db_dict.items():
    # 用字典的每个key和value调用write_data_to_excel函数。
    write_data_to_excel(k,v)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的词法分析与语法分析
May 18 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
Pycharm学习教程(2) 代码风格
May 02 Python
python实现感知器
Dec 19 Python
python写入并获取剪切板内容的实例
May 31 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
python 提取key 为中文的json 串方法
Dec 31 Python
Python目录和文件处理总结详解
Sep 02 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
python如何快速拼接字符串
Oct 28 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 Python
Python基础详解之邮件处理
Apr 28 Python
python 数据的清理行为实例详解
Jul 12 #Python
python的pdb调试命令的命令整理及实例
Jul 12 #Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 #Python
python 中split 和 strip的实例详解
Jul 12 #Python
Python实现简单的获取图片爬虫功能示例
Jul 12 #Python
python文件特定行插入和替换实例详解
Jul 12 #Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 #Python
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python连接oracle数据库实例
2014/10/17 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
python微信公众号开发简单流程实现
2020/03/09 Python
jupyter 导入csv文件方式
2020/04/21 Python
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
学生处主任岗位职责
2013/12/01 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
调解书格式范本
2015/05/20 职场文书
病房管理制度范本
2015/08/06 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书