zoukankan      html  css  js  c++  java
  • 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)    
  • 相关阅读:
    JS/jquery实现鼠标控制页面元素显隐
    【干货】十分钟读懂浏览器渲染流程
    【干货分享】程序员常访问的国外技术交流网站汇总
    jquery源码分析(七)——事件模块 event(二)
    jquery源码分析(五)——Deferred 延迟对象
    对于BFC(block format context)理解
    前端开发神器之chrome 综述
    重新认识面向对象
    DOMContentLoaded 与onload区别以及使用
    HTML5本地存储——Web SQL Database与indexedDB
  • 原文地址:https://www.cnblogs.com/chen0427/p/5755094.html
Copyright © 2011-2022 走看看