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的subprocess模块总结
Nov 07 Python
python制作一个桌面便签软件
Aug 09 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
python使用opencv实现马赛克效果示例
Sep 28 Python
python实现指定ip端口扫描方式
Dec 17 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
Pycharm快捷键配置详细整理
Oct 13 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使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
详解Python的Django框架中的中间件
2015/07/24 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
python实现三种随机请求头方式
2021/01/05 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
房地产融资计划书
2014/01/10 职场文书
工程技术员岗位职责
2014/03/02 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
留守儿童工作方案
2014/06/02 职场文书
个人年终总结结尾
2015/03/06 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis
MySQL创建管理RANGE分区
2022/04/13 MySQL