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

 更新时间:2017年07月12日 11:44:19   转载 作者:小小易拉罐  
这篇文章主要介绍了Python实现导出数据生成excel报表的方法,结合完整实例形式分析了Python连接、查询mysql数据库并导出Excel报表的相关实现技巧,需要的朋友可以参考下

本文实例讲述了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文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • Python 多线程,threading模块,创建子线程的两种方式示例

    Python 多线程,threading模块,创建子线程的两种方式示例

    这篇文章主要介绍了Python 多线程,threading模块,创建子线程的两种方式,结合实例形式分析了Python线程的原理与创建子线程的相关实现技巧,需要的朋友可以参考下
    2019-09-09
  • Python:二维列表下标互换方式(矩阵转置)

    Python:二维列表下标互换方式(矩阵转置)

    今天小编就为大家分享一篇Python:二维列表下标互换方式(矩阵转置),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Pycharm中切换pytorch的环境和配置的教程详解

    Pycharm中切换pytorch的环境和配置的教程详解

    这篇文章主要介绍了Pycharm中切换pytorch的环境和配置,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 在Python的Django框架中用流响应生成CSV文件的教程

    在Python的Django框架中用流响应生成CSV文件的教程

    这篇文章主要介绍了在Python的Django框架中用流响应生成CSV文件的教程,作者特别讲到了防止CSV文件中的中文避免出现乱码等问题,需要的朋友可以参考下
    2015-05-05
  • Python中如何将一个类方法变为多个方法

    Python中如何将一个类方法变为多个方法

    这篇文章主要介绍了Python中如何将一个类方法变为多个方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 基于python调用psutil模块过程解析

    基于python调用psutil模块过程解析

    这篇文章主要介绍了基于python调用psutils模块过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 基于Python列表解析(列表推导式)

    基于Python列表解析(列表推导式)

    今天小编就为大家分享一篇基于Python列表解析(列表推导式),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 详解duck typing鸭子类型程序设计与Python的实现示例

    详解duck typing鸭子类型程序设计与Python的实现示例

    这篇文章主要介绍了详解duck typing鸭子类型程序设计与Python的实现示例,鸭子类型特指解释型语言中的一种编程风格,需要的朋友可以参考下
    2016-06-06
  • python+selenium实现登录账户后自动点击的示例

    python+selenium实现登录账户后自动点击的示例

    本篇文章主要介绍了python+selenium实现登录账户后自动点击的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • CentOS 6.5中安装Python 3.6.2的方法步骤

    CentOS 6.5中安装Python 3.6.2的方法步骤

    centos 6.5默认自带的python版本为2.6,而下面这篇文章主要给大家介绍了关于在CentOS 6.5中安装Python 3.6.2的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12

最新评论