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操作SQLite简明教程
Jul 10 Python
Python中unittest用法实例
Sep 25 Python
Python实现高效求解素数代码实例
Jun 30 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
pytorch实现Tensor变量之间的转换
Feb 17 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 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
php入门小知识
2008/03/24 PHP
php利用cookie实现访问次数统计代码
2011/05/19 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
微信小程序实现购物页面左右联动
2019/02/15 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
django-初始配置(纯手写)详解
2019/07/30 Python
基于python 凸包问题的解决
2020/04/16 Python
python反扒机制的5种解决方法
2021/02/06 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
.net工程师笔试题
2012/06/09 面试题
举例说明类变量和实例变量的区别
2016/06/30 面试题
新员工欢迎词
2014/01/12 职场文书
高中生自我评语大全
2014/01/19 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
优秀教师个人总结
2015/02/11 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
使用Ajax实现进度条的绘制
2022/04/07 Javascript
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers