利用python將mysql中的數據導入excel


Python對Excel的讀寫主要有xlrd、xlwt、xlutils、openpyxl、xlsxwriter幾種。

如下分別利用xlwt和openpyxl將mysql數據庫中查詢的數據保存到excel中(注意:xlwt不支持.xlsx文件):

一、從mysql查詢數據

import mysql.connector conn=mysql.connector.connect(host='xx.xx.xx.xx',user='root', passwd='password', db='test') cursor = conn.cursor() sql = 'select * from table1 limit 5' cursor.execute(sql) datas=cursor.fetchall() conn.commit() cursor.close() conn.close() print(datas)

二、分別利用xlwt和openpyxl將datas數據保存到excel

1、xlwt寫入數據示例代碼

import xlwt

def set_style(name, height, bold = False):
    style = xlwt.XFStyle()   #初始化樣式

    font = xlwt.Font()       #為樣式創建字體
    font.name = name
    font.bold = bold
    font.color_index = 4
    font.height = height

    style.font = font
    return style

def write_excel(datas,filename):
    #創建工作簿
    workbook = xlwt.Workbook(encoding='utf-8')
    #創建sheet
    data_sheet = workbook.add_sheet('demo')
    row0 = [u'地市', u'country', '時間', '溫度','濕度','雨量','風速']
    for i in range(len(row0)):
        data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))
    nrows=len(datas)
    for i in range(nrows):
        for j in range(len(row0)):
            data_sheet.write(i+1,j,datas[i][j])
    # 工作簿保存到磁盤
    workbook.save(filename)

2、openpyxl寫入數據示例代碼

from openpyxl.workbook import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font

def write_excel_openpyxl1(datas,filename):
    # 在內存創建一個工作簿obj
    wb = Workbook()
    # 將workbook obj寫到excel文件
    # ew = ExcelWriter(workbook=wb)
    ew=wb.active
    # 設定第一個sheet頁,好像第一個sheet只能這樣設定
    ws = wb.worksheets[0]
    ws.title=u'天氣'
    # 向第一個sheet頁寫數據吧
    i = 1
    for line in datas:
        for col in range(1,len(line)+1):
            ColNum = get_column_letter(col)
            ws.cell('%s%s'%(ColNum,i)).value = line[col-1]
        i += 1
    # 工作簿保存到磁盤
    wb.save(filename)

def write_excel_openpyxl(datas,filename):
    # 在內存創建一個工作簿obj
    result_wb = Workbook()
    #第一個sheet是ws
    ws1 = result_wb.worksheets[0]
    # ws1=wb1.create_sheet('result',0)
    #設置ws的名稱
    ws1.title = "天氣"
    row0 = [u'地市', u'country', '時間', '溫度','濕度','雨量','風速']
    ft = Font(name='Arial', size=11, bold=True)
    for k in range(len(row0)):
        ws1.cell(row=1,column=k+1).value=row0[k]
        ws1.cell(row=1,column=k+1).font=ft
    for i in range(1,len(datas)+1):
        for j in range(1,len(row0)+1):
            # col=get_column_letter(j)
            # ws1.cell('%s%s'%(col,i)).value='%s' % (data[j-1])
            ws1.cell(row=i+1,column=j).value=datas[i-1][j-1]
    # 工作簿保存到磁盤
    result_wb.save(filename = filename)

三、調用函數

write_excel_openpyxl(datas,'result.xlsx')
write_excel_openpyxl1(datas,'result1.xlsx')
write_excel(datas,'result2.xls')

結果保存到.xlsx和.xls文件中,完成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM