python實現excel數據與mysql數據庫互通有無

file

【閱讀全文】

python在制作一些小工具上本身就有著得天獨厚的優勢,大多數非標準庫的應用只需要進行簡單的安裝即可使用。

比如:使用python將excel中的數據導入到mysql數據庫表中,或是將mysql數據庫表中的數據直接導出為excel都只需要簡單的幾行代碼就可以完成,假如使用Java來做這件事強那可就有些復雜了呢。

話不多說,接下來直接進入正題...

這里使用兩個python的非標準庫來操作,一個是我們比較熟悉的pandas非標準庫,使用它來完成excel相關的數據操作。

另外一個則是sqlalchemy非標準庫,使用它來完成對mysql數據庫表的相關數據操作。

使用pip的方式將這兩個非標準庫安裝好,下面是安裝命令:

pip install sqlalchemy

pip install pandas

準備好以后,先來編寫一個函數mysql_to_excel將數據從mysql數據庫表中導出到excel的數據操作。

from sqlalchemy import create_engine

import pandas as pd

def mysql_to_excel():
    '''
    將mysql數據導出到excel數據表中
    :return:
    '''
    # 使用create_engine函數創建數據庫連接,其中數據庫的用戶名和密碼分別是root/root,數據庫名稱為test
    engine = create_engine('mysql+pymysql://root:root@localhost/test')
    # 使用sql語句讀取data表中的所有數據
    data_frame = pd.read_sql(sql='select * from test.data', con=engine)
    # 將sql查詢出來的數據導出到excel數據表中
    data_frame.to_excel('data.xlsx')

可以發現,pandas非標準庫提供了read_sql函數來讀取數據,并且返回的數據類型是DataFrame數據類型。最后,將DataFrame的數據直接保存到excel中,主邏輯的實現只用了三行代碼就完成了,這就是python的魅力。

隨后,再來編寫一下函數excel_to_mysql將數據從excel中直接導出到數據庫表中,為了保證下面函數的獨立性,于是我把用到的庫又導入了一遍。

from sqlalchemy import create_engine

import pandas as pd

def excel_to_mysql():
    # 使用create_engine函數創建數據庫連接,其中數據庫的用戶名和密碼分別是root/root,數據庫名稱為test
    engine = create_engine('mysql+pymysql://root:211314@localhost/test')
    # 使用pandas非標準庫提供的read_excel函數將data.xlsx文件中的數據全部讀取出來
    data_frame = pd.read_excel('data.xlsx')
    # 將DataFrame格式的數據通過to_sql函數保存到數據庫中,這個時候它會自動創建一個數據庫表,也就是data表
    data_frame.to_sql(name='data', con=engine, index=False, if_exists='replace')

在導入數據庫表的時候是DataFrame數據對象直接提供了to_sql函數進行數據的插入操作,連sql語句都不用寫。這個DataFrame對象的操作還真是強大呢,它是excel數據分析、數據提取中永遠的神。

最后,感謝大家的閱讀,我會不斷學習努力更新出更好的干貨~

【往期精彩】

python 實現超快窗口截圖,自動獲取當前活動窗口并展示截圖...

怎么用python做一個解壓縮小工具,以后再也不用下載各種格式的解壓縮軟件了...

python中最簡單的turtle繪圖:奧運五環!

知識匯總:python辦公自動化應該學習哪些內容?

python多線程同步售票系統解決思路...

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容