1. 程式人生 > 其它 >python實現excel資料與mysql資料庫互通有無

python實現excel資料與mysql資料庫互通有無

【閱讀全文】

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多執行緒同步售票系統解決思路...