【Mysql】匯出資料到excel檔案中

小亮520cl發表於2016-10-08
每次透過intooufile 匯出資料檔案成excel表格式 下載到本地後都會成為亂碼 
百度後 透過轉碼的方式發現還是不行,只能透過導成txt格式再另存的方式成excel格式,相當麻煩,於是自己寫個指令碼來達到目的
原始碼
  1. #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import MySQLdb                                                 
    import xlsxwriter
    import os
    import sys
    os.remove('demo3.xlsx')
    #default_encoding = 'utf8'
    #if sys.getdefaultencoding() != default_encoding:
    #    reload(sys)
    #    sys.setdefaultencoding(default_encoding)


    conn=MySQLdb.connect(user="root",passwd="NuyBc6jdYwU9oQ",db="vip",port=3306,host="127.0.0.1",charset="utf8")
    cursor =conn.cursor()                                          


    sql="**************"


    n=cursor.execute(sql)                                            
    print "row count is :",n                                                           


    row=cursor.fetchall()
    col=len(row[1])                                              
    print "col count is:",col                                                


    workbook = xlsxwriter.Workbook('demo3.xlsx') # 建立一個 Excel 檔案
    worksheet = workbook.add_worksheet() # 建立一個工作表物件


    colname=['?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']



    ####寫入表頭(即列名)
    k=1
    for field_desc in cursor.description:
            name=colname[k]+"%s" % 1
            m=field_desc[0].decode('utf-8')           ###中文別名需要加utf-8
            print m
            worksheet.write(name,u'%s' % m)
            k=k+1




    ###寫入資料
    i=2
    for data in row:
            rowname="A%s" % i
            print "now is:",rowname
            j=1
    for m in data:
                name=colname[j]+"%s" % i
                print m
                  
                worksheet.write(name,u'%s' % m)


                j=j+1
            i=i+1


    workbook.close()
                
               

    cursor.close()                                                        
    conn.close() 






執行:demo3.xlsx 下載到本地開啟無亂碼
[root@host-192-168-6-254 soft]# ls
demo3.xlsx  xls.py

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2125928/,如需轉載,請註明出處,否則將追究法律責任。

相關文章