Python 利用pymysql和openpyxl操作MySQL資料庫並插入Excel資料
1. 需求分析
本文將介紹如何使用Python連線MySQL資料庫,並從Excel檔案中讀取資料,將其插入到MySQL資料庫中。
2. 環境準備
在開始本文之前,請確保您已經安裝好了以下環境:
- Python 3.x
- PyMySQL庫
- openpyxl庫
- MySQL資料庫
3. 連線MySQL資料庫
我們可以使用
pymysql
庫來連線MySQL資料庫。請先建立一個名為
test
的MySQL資料庫,並在其中建立一個名為
yonghu
的表。
import pymysql # 連線到MySQL資料庫 mydb = pymysql.connect( host="localhost", user="root", passwd="123456", db="test")
在上述程式碼中,我們呼叫了
pymysql
庫中的
connect()
函式來連線MySQL資料庫。其中,
host
引數是MySQL伺服器的主機名或IP地址,
user
引數是登入MySQL伺服器的使用者名稱,
passwd
引數是登入MySQL伺服器的密碼,
db
引數是要連線的資料庫名。
4. 開啟Excel檔案
在Python中,可以使用
openpyxl
庫來讀寫Excel檔案。請先安裝好
openpyxl
庫。
from openpyxl import load_workbook # 開啟Excel檔案 wb = load_workbook(filename=r'E:\重新開始\Python操作MySQL資料庫\sheet1.xlsx') sheet = wb.active
在上述程式碼中,我們使用
load_workbook()
函式載入Excel檔案,並使用
active
屬性獲取活動工作表。
5. 獲取表頭
在插入資料之前,我們需要先獲取Excel表格的表頭資訊。
# 獲取表頭 header = [cell.value for cell in sheet[1]]
在上述程式碼中,我們遍歷第一行的單元格,獲取每個單元格的值,作為表頭。
6. 遍歷Excel資料並插入資料庫
接下來,我們遍歷Excel檔案中的每一行資料,並將其插入到MySQL資料庫中。
# 遍歷每一行資料,並將其插入到資料庫中 cursor = mydb.cursor() count = 0for row in sheet.iter_rows(min_row=2, values_only=True): sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})" cursor.execute(sql, row) count += 1 print(f"正在插入{count}條資料") # 提交更改並關閉資料庫連線 mydb.commit() cursor.close() mydb.close()
在上述程式碼中,我們使用
iter_rows()
函式從第二行開始遍歷每一行資料。在遍歷過程中,我們構建了一個插入資料的SQL語句,使用佔位符
%s
,然後使用遊標物件執行SQL語句,將行資料插入到MySQL資料庫中。
最後,我們提交了對資料庫的更改,並關閉了遊標物件和與MySQL資料庫的連線。
7. 完整程式碼
最終的Python程式碼如下:
from openpyxl import load_workbook # 匯入load_workbook函式,用於載入Excel檔案 import pymysql # 匯入pymysql庫,用於連線和操作MySQL資料庫 # 連線到MySQL資料庫 mydb = pymysql.connect( host="localhost", user="root", passwd="123456", db="test") # 開啟Excel檔案 wb = load_workbook(filename=r'E:\重新開始\Python操作MySQL資料庫\sheet1.xlsx') # 載入Excel檔案 sheet = wb.active # 獲取活動工作表 # 獲取表頭 header = [cell.value for cell in sheet[1]] # 獲取第一行的單元格值,作為表頭 # 遍歷每一行資料,並將其插入到資料庫中 cursor = mydb.cursor() # 建立遊標物件,用於執行SQL語句 count = 0 # 計數器,用於記錄插入的資料條數for row in sheet.iter_rows(min_row=2, values_only=True): # 從第二行開始遍歷每一行資料 sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})" # 構建插入資料的SQL語句,使用佔位符%s cursor.execute(sql, row) # 執行SQL語句,將行資料插入到資料庫中 count += 1 # 每插入一條資料,計數器加1 print(f"正在插入{count}條資料") # 輸出插入的資料條數 # 提交更改並關閉資料庫連線 mydb.commit() # 提交對資料庫的更改 cursor.close() # 關閉遊標物件 mydb.close() # 關閉與資料庫的連線
8. 總結
本文介紹瞭如何使用Python連線MySQL資料庫,並從Excel檔案中讀取資料,將其插入到MySQL資料庫中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70034822/viewspace-2991950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python操作MySQL資料庫連線(pymysql)PythonMySql資料庫
- Python使用pymysql和xlrd2將Excel資料匯入MySQL資料庫PythonMySqlExcel資料庫
- python資料庫操作 - PyMySQL入門Python資料庫MySql
- 【Python】基於pymysql的資料庫操作類PythonMySql資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- Python 利用pandas和mysql-connector獲取Excel資料寫入到MySQL資料庫PythonMySqlExcel資料庫
- 使用openpyxl庫讀取Excel檔案資料Excel
- eazyexcel 讀取excel資料插入資料庫Excel資料庫
- python連線mysql並插入資料(自用)PythonMySql
- python3使用PyMysql連線mysql資料庫PythonMySql資料庫
- python資料庫(mysql)操作Python資料庫MySql
- python 操作mysql資料庫PythonMySql資料庫
- Python Mysql 資料庫操作PythonMySql資料庫
- python操作mysql資料庫PythonMySql資料庫
- Python3結構化資料庫操作包pymysqlPython資料庫MySql
- Django使用pymysql連線MySQL資料庫DjangoMySql資料庫
- (資料庫之pymysql)資料庫MySql
- 【python介面自動化】- openpyxl讀取excel資料PythonExcel
- sqlite建立本地資料庫並插入資料SQLite資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- MySQL 資料庫表格建立、資料插入及獲取插入的 ID:Python 教程MySql資料庫Python
- python如何將資料插入資料庫Python資料庫
- MySQL 資料庫操作MySql資料庫
- 01-python操作Mysql資料庫PythonMySql資料庫
- Python3 MySQL 資料庫操作PythonMySql資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- openpyxl庫寫入列表資料
- 通過python操控MYSQL新增資料,並將資料新增到EXCEL中PythonMySqlExcel
- python 操作 excel 之資料清洗PythonExcel
- java poi讀取Excel資料 插入到SQL SERVER資料庫中JavaExcelSQLServer資料庫
- python運算元據庫,批量插入資料庫資料Python資料庫
- Mysql資料庫操作命令MySql資料庫
- PHP操作MySQL資料庫PHPMySql資料庫
- MySQL資料庫常用操作MySql資料庫
- 【Java】操作mysql資料庫JavaMySql資料庫
- MySQL資料庫基本操作MySql資料庫
- shell 操作mysql資料庫MySql資料庫
- 使用mysql-connector-python操作MYSQL資料庫MySqlPython資料庫