zoukankan      html  css  js  c++  java
  • 通用导出EXCEL

    # 需求:只要你传入一个表名,就能把所有的数据导入出来,字段名是excel的表头
    # 1、要动态获取到表的字段
    # cur.description能获取到表的字段
    # fileds = [filed[0] for filed in cur.description]
    # 2、获取数据了
    # select * from "%s" % table_name
    # 3、循环写入excel


    # for i in range(5):
    # for j in range(3):
    # print(j)



    import pymysql,xlwt

    def export_exel(tale_name):
    import pymysql
    host, user, passwd, db = '118.xx.xx.xx', 'xx', '123456', 'xxx'
    coon = pymysql.connect(
    host=host,user=user,passwd=passwd,db=db,port=3306,charset='utf8'
    )
    cur = coon.cursor()# 建立游标
    sql = 'select * from %s;'%tale_name
    cur.execute(sql) # 执行sql

    # cur.description所有的字段(('id', 3, None, 11, 11, 0, False),()……)
    fileds=[filed[0] for filed in cur.description]
    # print(fileds) #['id', 'name', 'sex', 'age', 'addr', 'grade', 'phone', 'gold']
    all_data=cur.fetchall()#获取到SQL执行的全部结果,它把数据库表里面的每一行数据放到一个LIST里面
    book = xlwt.Workbook() # 新建一个excel
    sheet = book.add_sheet('sheet1') # sheet
    # col=0 #

    for col,filed in enumerate (fileds):#写表头的,col接收的下标,filed接收的是内容
    sheet.write(0,col,filed)
    # col+=1
    print(all_data)

    row=1 #行数
    for data in all_data:# all_data((1, '小黑马', '', 28, '河南省济源市北海大道32'),……)
    for col, filed in enumerate(data):#控制列
    sheet.write(row, col, filed)
    row+=1 #每次写完一行,行就加1


    book.save('%s.xls'%tale_name)
    export_exel('app_student')




    #
    # # enumerate()#循环的时候,直接获取到下标和值
    # fileds = ['id','name','sex','addr','gold','score']
    # for index,filed in enumerate(fileds):
    # print(index,filed)













  • 相关阅读:
    列表左边左右固定,右边可以左右滚动,且左右两边列表滚动时上下联动
    SQL分组多列统计(GROUP BY后按条件分列统计)
    C# 调用webservice 几种办法(转载)
    解析XML文档
    GDI+中发生一般性错误的解决办法
    所闻所获2:使用块回调来实现代理的功能
    OC基础11:基本的C语言特性2
    OC基础10:基本的C语言特性1
    OC基础9:预处理程序
    OC基础8:分类和协议
  • 原文地址:https://www.cnblogs.com/jiadan/p/9026981.html
Copyright © 2011-2022 走看看