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