欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)將MySQL數(shù)據(jù)庫查詢結(jié)果導(dǎo)出到Excel

 更新時間:2023年11月08日 08:09:13   作者:qwerrt9  
在實際工作中,我們經(jīng)常需要將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到Excel表格中進行進一步的分析和處理,Python中的pymysql和xlsxwriter庫提供了很好的解決方案,下面我們就來看看具體操作方法吧

在實際工作中,我們經(jīng)常需要將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到Excel表格中進行進一步的分析和處理。Python中的pymysql和xlsxwriter庫提供了很好的解決方案,使得這一過程變得簡單而高效。

建立數(shù)據(jù)庫連接

首先,我們需要使用pymysql庫來建立與MySQL數(shù)據(jù)庫的連接,并指定要連接的數(shù)據(jù)庫名稱、用戶名和密碼。

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='caiwu'
)

編寫SQL查詢語句

接下來,我們可以編寫需要執(zhí)行的SQL查詢語句,以獲取所需的數(shù)據(jù)。

query = "SELECT * FROM report_品名"

創(chuàng)建Excel文件對象和工作表對象

使用xlsxwriter庫,我們可以創(chuàng)建一個新的Excel文件和工作表對象,準備將數(shù)據(jù)寫入其中。

import xlsxwriter

workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()

創(chuàng)建游標對象并執(zhí)行SQL查詢

創(chuàng)建游標對象,執(zhí)行SQL查詢語句,并獲取查詢結(jié)果的列名。

cursor = connection.cursor()
cursor.execute(query)

column_names = [i[0] for i in cursor.description]

將查詢結(jié)果寫入Excel文件

遍歷查詢結(jié)果,并將數(shù)據(jù)寫入到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)

關(guān)閉游標、數(shù)據(jù)庫連接和Excel文件對象

在數(shù)據(jù)導(dǎo)出完成后,記得關(guān)閉游標、數(shù)據(jù)庫連接和Excel文件對象,釋放資源。

cursor.close()
connection.close()
workbook.close()

總結(jié)

通過以上步驟,我們使用Python成功地將MySQL查詢結(jié)果導(dǎo)出到Excel文件中。這種方法不僅簡單方便,而且還可以輕松實現(xiàn)定制化的數(shù)據(jù)處理和格式化操作。

完整代碼

import pymysql
import xlsxwriter
import datetime

# 建立數(shù)據(jù)庫連接
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)

# 獲取查詢結(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ù)類型是否為時間類型
        if isinstance(col_data, datetime.datetime):
            col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")  # 將時間字段轉(zhuǎn)換為字符串
        worksheet.write(row_index + 1, col_index, col_data)

# 關(guān)閉游標對象
cursor.close()

# 關(guān)閉數(shù)據(jù)庫連接
connection.close()

# 關(guān)閉Excel文件對象
workbook.close()

到此這篇關(guān)于Python實現(xiàn)將MySQL數(shù)據(jù)庫查詢結(jié)果導(dǎo)出到Excel的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出到Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論