Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)查詢結(jié)果導(dǎo)出到Excel
在實(shí)際工作中,我們經(jīng)常需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到Excel表格中進(jìn)行進(jìn)一步的分析和處理。Python中的pymysql和xlsxwriter庫(kù)提供了很好的解決方案,使得這一過程變得簡(jiǎn)單而高效。
建立數(shù)據(jù)庫(kù)連接
首先,我們需要使用pymysql庫(kù)來(lái)建立與MySQL數(shù)據(jù)庫(kù)的連接,并指定要連接的數(shù)據(jù)庫(kù)名稱、用戶名和密碼。
import pymysql connection = pymysql.connect( host='localhost', user='root', password='123456', database='caiwu' )
編寫SQL查詢語(yǔ)句
接下來(lái),我們可以編寫需要執(zhí)行的SQL查詢語(yǔ)句,以獲取所需的數(shù)據(jù)。
query = "SELECT * FROM report_品名"
創(chuàng)建Excel文件對(duì)象和工作表對(duì)象
使用xlsxwriter庫(kù),我們可以創(chuàng)建一個(gè)新的Excel文件和工作表對(duì)象,準(zhǔn)備將數(shù)據(jù)寫入其中。
import xlsxwriter workbook = xlsxwriter.Workbook('output.xlsx') worksheet = workbook.add_worksheet()
創(chuàng)建游標(biāo)對(duì)象并執(zhí)行SQL查詢
創(chuàng)建游標(biāo)對(duì)象,執(zhí)行SQL查詢語(yǔ)句,并獲取查詢結(jié)果的列名。
cursor = connection.cursor() cursor.execute(query) column_names = [i[0] for i in cursor.description]
將查詢結(jié)果寫入Excel文件
遍歷查詢結(jié)果,并將數(shù)據(jù)寫入到Excel文件中。在此過程中,我們還可以對(duì)時(shí)間字段進(jìn)行格式化處理。
import datetime data = cursor.fetchall() for col_index, col_name in enumerate(column_names): worksheet.write(0, col_index, col_name) for row_index, row_data in enumerate(data): for col_index, col_data in enumerate(row_data): if isinstance(col_data, datetime.datetime): col_data = col_data.strftime("%Y-%m-%d %H:%M:%S") worksheet.write(row_index + 1, col_index, col_data)
關(guān)閉游標(biāo)、數(shù)據(jù)庫(kù)連接和Excel文件對(duì)象
在數(shù)據(jù)導(dǎo)出完成后,記得關(guān)閉游標(biāo)、數(shù)據(jù)庫(kù)連接和Excel文件對(duì)象,釋放資源。
cursor.close() connection.close() workbook.close()
總結(jié)
通過以上步驟,我們使用Python成功地將MySQL查詢結(jié)果導(dǎo)出到Excel文件中。這種方法不僅簡(jiǎn)單方便,而且還可以輕松實(shí)現(xiàn)定制化的數(shù)據(jù)處理和格式化操作。
完整代碼
import pymysql import xlsxwriter import datetime # 建立數(shù)據(jù)庫(kù)連接 connection = pymysql.connect( host='localhost', user='root', password='123456', database='caiwu' ) # 編寫SQL查詢語(yǔ)句 query = "SELECT * FROM report_品名" # 創(chuàng)建Excel文件對(duì)象 workbook = xlsxwriter.Workbook('output2.xlsx') # 創(chuàng)建Excel工作表對(duì)象 worksheet = workbook.add_worksheet() # 創(chuàng)建游標(biāo)對(duì)象 cursor = connection.cursor() # 執(zhí)行SQL查詢 cursor.execute(query) # 獲取查詢結(jié)果的列名 column_names = [i[0] for i in cursor.description] # 將列名寫入Excel文件的第一行 for col_index, col_name in enumerate(column_names): worksheet.write(0, col_index, col_name) # 獲取查詢結(jié)果中的數(shù)據(jù) data = cursor.fetchall() # 將數(shù)據(jù)寫入Excel文件中 for row_index, row_data in enumerate(data): for col_index, col_data in enumerate(row_data): # 判斷數(shù)據(jù)類型是否為時(shí)間類型 if isinstance(col_data, datetime.datetime): col_data = col_data.strftime("%Y-%m-%d %H:%M:%S") # 將時(shí)間字段轉(zhuǎn)換為字符串 worksheet.write(row_index + 1, col_index, col_data) # 關(guān)閉游標(biāo)對(duì)象 cursor.close() # 關(guān)閉數(shù)據(jù)庫(kù)連接 connection.close() # 關(guān)閉Excel文件對(duì)象 workbook.close()
到此這篇關(guān)于Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)查詢結(jié)果導(dǎo)出到Excel的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出到Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)Python正則匹配IP、Url、Mail的方法詳解
今天小編就為大家分享一篇對(duì)Python正則匹配IP、Url、Mail的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-12-12Python初學(xué)者必須掌握的25個(gè)內(nèi)置函數(shù)詳解
這篇文章主要介紹了Python25個(gè)常用內(nèi)置函數(shù)總結(jié),本文羅列了數(shù)學(xué)相關(guān) 、功能相關(guān)、類型轉(zhuǎn)換、字符串處理、序列處理函數(shù)等常用內(nèi)置函數(shù),需要的朋友可以參考下2021-09-09Python 面向?qū)ο笾庋b、繼承、多態(tài)操作實(shí)例分析
這篇文章主要介紹了Python 面向?qū)ο笾庋b、繼承、多態(tài)操作,結(jié)合實(shí)例形式分析了Python面相對(duì)象程序設(shè)計(jì)中封裝、繼承、多態(tài)相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-11-11python使用beautifulsoup從愛奇藝網(wǎng)抓取視頻播放
這篇文章主要介紹了python使用beautifulsoup從愛奇藝網(wǎng)抓取視頻并播放示例,大家參考使用吧2014-01-01剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼
這篇文章主要介紹了剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼,這樣就可以使用Django等框架中大家所熟悉的session了,需要的朋友可以參考下2015-08-08python構(gòu)建指數(shù)平滑預(yù)測(cè)模型示例
今天小編就為大家分享一篇python構(gòu)建指數(shù)平滑預(yù)測(cè)模型示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-11-11Python實(shí)現(xiàn)PS濾鏡碎片特效功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡碎片特效功能,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS濾鏡碎片效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01