如何使用 Python 將 Excel 文件導入數據庫表
在當今數據驅動的世界中,高效的數據處理對於任何組織或個人來說都是至關重要的任務。 Python擁有豐富的函式庫生態系統,提供了強大的資料操作和管理工具,例如 pandas 函式庫。 一個常見的場景是需要從Excel電子表格中提取或匯入數據,並將數據儲存或插入資料庫中,以便進行進一步分析或與其他系統整合。 在本教程中,我們將探討如何建立一個 Python 腳本來自動執行此過程,使您能夠無縫地從 Excel 表格檔案中讀取資料並將其插入資料庫。 學完本教學後,您將能夠有效率地處理資料遷移任務。 我們開始吧!
如何使用 Python 將 Excel 檔案匯入資料庫表
- 先安裝IronXL庫。
- 使用IronXL將 Excel 檔案載入到記憶體中。
- 載入您要使用的特定電子表格。
- 選擇要匯入的精確資料範圍。
- 使用 Python 與 SQLite 或 MySQL 等資料庫建立連線。
- 在 SQLite 資料庫中建立一個新表,用於容納匯入的資料。
- 將 Excel 檔案中選定的行插入到新建立的 SQLite 表中。
- 從建立的 SQLite 表中檢索和選擇數據,以便進行進一步的分析或處理。
在本教程中,我們將使用IronXL ,這是一個以高效處理 Excel 檔案而聞名的 Python 庫。 透過將IronXL整合到我們的腳本中,我們確保從 Excel 電子表格中無縫提取數據,從而能夠順利地將數據插入資料庫以進行進一步的分析和處理。
IronXL是什麼?
IronXL是由Iron Software開發的 Python 函式庫,它提供了強大的功能,可以直接在 Python 應用程式中讀取、產生和編輯 Excel 檔案。 值得注意的是, IronXL 的突出之處在於它無需安裝 Microsoft Excel,從而簡化了在不同環境中的部署。 使用IronXL,開發人員可以受益於:
跨平台支援:可在 Windows、macOS、Linux、Docker、Azure 和 AWS 平台上無縫運行,確保適應各種不同的開發環境。
資料匯入和匯出:輕鬆處理從 XLS、XLSX、CSV 和 TSV 檔案匯入的數據,並可靈活地將工作表匯出為這些格式,甚至匯出為 JSON 格式,以增強互通性。
加密功能:利用 IronXL 的加密功能確保資料安全,允許使用密碼保護 XLSX、XLSM 和 XLTX 檔案。
公式和重新計算:輕鬆使用 Excel公式,每次編輯工作表時都會自動重新計算,從而確保資料處理的準確性和可靠性。
儲存格樣式:透過調整字體樣式、大小、背景圖案、邊框和對齊方式來自訂單一儲存格的外觀,從而增強 Excel 文件的視覺效果。
支援多種文件格式: IronXL支援多種格式,包括 XLS、XLSX、XLST、XLSM、CSV 和 TSV,讓開發人員能夠輕鬆且有效率地處理各種場景下的資料。
現在,讓我們開始安裝IronXL。
步驟 1:安裝IronXL庫
第一步是安裝IronXL庫。 在命令提示字元中執行以下命令來安裝IronXL 。
pip install IronXLpip install IronXL步驟 2:載入 Excel 工作簿
下一步是載入Excel檔案。本教學將使用以下Excel檔案。

以下程式碼會將記憶體中已有的 Excel 檔案載入到記憶體中。
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")上面的 Python 程式碼片段示範如何使用IronXL程式庫載入名為"sample_excel.xlsx"的 Excel 工作簿。 首先,從IronXL導入必要的 Python 模組。 然後,系統會指派一個許可證金鑰來驗證庫的使用情況。 您可以從IronXL網站取得免費許可證金鑰。 最後,採用 Load 方法開啟並載入指定的 Excel 工作簿到記憶體中。 這樣就可以對它的內容進行後續的程式設計操作,例如讀取資料、修改儲存格值或應用程式格式。
步驟 3:選擇工作表
若要使用IronXL在 Excel 工作簿中選擇工作表,您可以指定工作表索引或名稱。
# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]此行選擇已載入的 Excel 工作簿中的第一個工作表,並將其指派給變數 worksheet,從而允許對工作簿中的該特定工作表執行後續操作。 這將把 Excel 工作表中的資料載入到工作表變數中。
步驟 4:開啟資料庫連接
在本教程中,我們將使用 SQLite 資料庫而不是 MySQL 資料庫伺服器。 要啟動資料庫操作,我們首先要建立與資料庫的連線。
import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')上述程式碼建立了與名為"data.db"的 SQLite 資料庫的連線。 如果指定的資料庫不存在,則會自動建立。 此連接允許後續與 SQLite 資料庫進行交互,例如執行查詢和執行資料操作。
步驟 5:建立表格
下一步是在資料庫中建立一個資料庫表,我們將從 Excel 檔案匯入資料。若要在 SQLite 資料庫中建立資料表,可以使用連線物件執行 SQL 語句。
# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')上面的程式碼片段初始化一個遊標對象,以便在 SQLite 資料庫連接中執行 SQL 命令。 它會建立一個名為"customer"的表,其中包含"id"、"FirstName"、"LastName"、"Gender"、"Country"和"Age"欄位。 如果表格尚不存在,則會依照指定的列資料類型建立該表格。
步驟 6:使用 Python 將資料匯入資料庫
現在,我們將資料插入我們新建的表中。 我們將導入一個 Excel 文件,並將其資料插入 SQLite 資料庫。
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()上面的程式碼遍歷 Excel 工作表中的第 2 行到第 10 行,提取每一行 A 列到 F 列的值。 這些值儲存在一個元組中,表示要插入到"客戶"表中的資料。 然後遊標執行 SQL INSERT 指令,將值元組合併到表中。 這個過程對每一行重複進行,有效地將資料從 Excel 檔案匯入到 SQLite 資料庫中。 最後,conn.commit() 提交事務,確保變更已儲存並持久化到資料庫中。
步驟 7:從資料庫讀取數據
若要驗證資料是否已正確插入,可以使用 SELECT 查詢從 SQLite 資料庫中的"customer"表中讀取資料。 例如:
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()上面的程式碼對 SQLite 資料庫中的"customer"表執行 SELECT 查詢,檢索所有行。 使用 fetchall() 方法取得的行儲存在"rows"變數中。 然後,逐行列印,顯示插入到"客戶"表中的資料。 最後,使用 close() 方法關閉資料庫連線以釋放資源。

完整程式碼如下:
import sqlite3
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')
# Clear any existing data from the table
cursor.execute("DELETE FROM customer")
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()import sqlite3
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')
# Clear any existing data from the table
cursor.execute("DELETE FROM customer")
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()結論
總之,本教學示範了一種自動化資料處理方法,具體來說,就是將 Excel 資料提取並插入資料庫。 這個過程不僅提高了資料管理的效率,而且充分發揮了其在資料處理方面的潛力。 充分利用 Python 和IronXL的強大功能,優化您的資料工作流程,並充滿信心地推進您的專案。
常見問題解答
如何使用 Python 將 Excel 文件中的數據導入到數據庫中?
您可以使用 IronXL 庫從 Excel 文件導入數據到數據庫,首先使用 `WorkBook.Load()` 加載 Excel 文件,然後選擇工作表並建立與 SQLite 的數據庫連接以插入數據。
使用 IronXL 處理 Python 中的 Excel 文件有何優勢?
IronXL 允許您在不安裝 Microsoft Excel 的情況下處理 Excel 文件,支持跨平台操作,提供強大的功能如加密和公式重計算,並有效管理數據提取和插入過程。
如何安裝 IronXL 以用於 Python 項目中?
要在 Python 項目中安裝 IronXL,您可以使用命令:`pip install IronXL`。這將把 IronXL 添加到您的 Python 環境中,使您能夠有效處理 Excel 文件。
是否可以在未安裝 Microsoft Excel 的情況下在 Python 中處理 Excel 文件?
是的,使用 IronXL,您可以在沒有安裝 Microsoft Excel 的情況下處理 Excel 文件。IronXL 提供所有必要的功能來獨立讀取、編輯和寫入 Excel 文件。
在 Python 中創建一個存儲 Excel 數據的數據庫表的過程是什麼?
要在 Python 中創建數據庫表,您可以使用 SQLite 的 `sqlite3` 模組。在使用 `connect()` 建立連接後,通過游標對象執行 SQL `CREATE TABLE` 語句。
如何驗證 Excel 數據是否成功插入到 SQLite 數據庫中?
您可以通過在表上執行 `SELECT` 查詢並使用 `fetchall()` 方法檢索並打印結果集中的所有行來驗證插入。
應該遵循哪些步驟來從 Excel 到數據庫進行數據遷移?
步驟包括安裝 IronXL,載入 Excel 文件,選擇工作表,連接到數據庫,創建表,並通過 SQL `INSERT` 命令迭代 Excel 行來插入數據。
IronXL 能否在 Python 中處理 Excel 公式並重新計算它們?
是的,IronXL 支持 Excel 公式並可以重新計算它們,為 Python 應用程序內的 Excel 文件操作提供綜合解決方案。
IronXL 是否支持跨平台操作以處理 Excel 文件?
是的,IronXL 支持跨平台操作,包括 Windows、macOS、Linux、Docker、Azure 和 AWS 等環境,這使其成為各種開發設置的多功能選擇。
IronXL 如何增強 Python 應用程序中的數據工作流程?
IronXL 通過提供高效數據提取、操作和插入功能來增強數據工作流程,這優化了數據管理流程並提高了數據驅動應用的性能。









