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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#_*_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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值