Python實現將MySQL數據庫查詢結果導出到Excel
在實際工作中,我們經常需要將數據庫中的數據導出到Excel表格中進行進一步的分析和處理。Python中的pymysql和xlsxwriter庫提供了很好的解決方案,使得這一過程變得簡單而高效。
建立數據庫連接
首先,我們需要使用pymysql庫來建立與MySQL數據庫的連接,并指定要連接的數據庫名稱、用戶名和密碼。
import pymysql connection = pymysql.connect( host='localhost', user='root', password='123456', database='caiwu' )
編寫SQL查詢語句
接下來,我們可以編寫需要執(zhí)行的SQL查詢語句,以獲取所需的數據。
query = "SELECT * FROM report_品名"
創(chuàng)建Excel文件對象和工作表對象
使用xlsxwriter庫,我們可以創(chuàng)建一個新的Excel文件和工作表對象,準備將數據寫入其中。
import xlsxwriter workbook = xlsxwriter.Workbook('output.xlsx') worksheet = workbook.add_worksheet()
創(chuàng)建游標對象并執(zhí)行SQL查詢
創(chuàng)建游標對象,執(zhí)行SQL查詢語句,并獲取查詢結果的列名。
cursor = connection.cursor() cursor.execute(query) column_names = [i[0] for i in cursor.description]
將查詢結果寫入Excel文件
遍歷查詢結果,并將數據寫入到Excel文件中。在此過程中,我們還可以對時間字段進行格式化處理。
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)
關閉游標、數據庫連接和Excel文件對象
在數據導出完成后,記得關閉游標、數據庫連接和Excel文件對象,釋放資源。
cursor.close() connection.close() workbook.close()
總結
通過以上步驟,我們使用Python成功地將MySQL查詢結果導出到Excel文件中。這種方法不僅簡單方便,而且還可以輕松實現定制化的數據處理和格式化操作。
完整代碼
import pymysql import xlsxwriter import datetime # 建立數據庫連接 connection = pymysql.connect( host='localhost', user='root', password='123456', database='caiwu' ) # 編寫SQL查詢語句 query = "SELECT * FROM report_品名" # 創(chuàng)建Excel文件對象 workbook = xlsxwriter.Workbook('output2.xlsx') # 創(chuàng)建Excel工作表對象 worksheet = workbook.add_worksheet() # 創(chuàng)建游標對象 cursor = connection.cursor() # 執(zhí)行SQL查詢 cursor.execute(query) # 獲取查詢結果的列名 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) # 獲取查詢結果中的數據 data = cursor.fetchall() # 將數據寫入Excel文件中 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) # 關閉游標對象 cursor.close() # 關閉數據庫連接 connection.close() # 關閉Excel文件對象 workbook.close()
到此這篇關于Python實現將MySQL數據庫查詢結果導出到Excel的文章就介紹到這了,更多相關Python數據庫數據導出到Excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python 面向對象之封裝、繼承、多態(tài)操作實例分析
這篇文章主要介紹了Python 面向對象之封裝、繼承、多態(tài)操作,結合實例形式分析了Python面相對象程序設計中封裝、繼承、多態(tài)相關操作技巧與使用注意事項,需要的朋友可以參考下2019-11-11python使用beautifulsoup從愛奇藝網抓取視頻播放
這篇文章主要介紹了python使用beautifulsoup從愛奇藝網抓取視頻并播放示例,大家參考使用吧2014-01-01剖析Python的Tornado框架中session支持的實現代碼
這篇文章主要介紹了剖析Python的Tornado框架中session支持的實現代碼,這樣就可以使用Django等框架中大家所熟悉的session了,需要的朋友可以參考下2015-08-08