pd.read_excel 教學:完整解析 Pandas 讀取 Excel 檔案語法、參數與實務應用

本教學全面解析 pd.read_excel 的基本語法、參數設定、進階應用與常見錯誤排解,並結合專案管理與數據分析的實務需求,協助讀者高效讀取、處理 Excel 檔案,並提供工具選擇建議。

🧮 還在用 Excel 管理專案?試試這些更聰明的工具 🚀

從 Excel 升級到專業專案管理 × 自動化平台

還在用 Excel 追進度?monday.com 幫你把任務、時程、甘特圖、報表全部自動化! 支援 Excel 一鍵匯入,輕鬆轉換成更直覺的視覺化專案看板。 全球 22.5 萬家公司愛用,AI 輔助讓團隊溝通更順暢。
⭐ 最多人使用

從任務到 OKR,一站式專案與團隊協作平台

整合文件、OKR、任務與自動化流程,AI 助你更快完成工作。 也支援從 Excel 匯入專案資料。

輕鬆整理文件 × 規劃專案 × 建立資料庫

Notion AI 幫你自動生成 SOP、專案摘要與任務追蹤頁面。 從 Excel 匯入表格,打造你自己的工作空間。

pd.read_excel 教學總覽

pd.read_excel 是什麼?適用情境與優勢

pd.read_excel 是 Pandas 套件中專門用來讀取 Excel 檔案(如 .xls、.xlsx、.xlsm、.xlsb、.ods 等)的函數。它能將 Excel 表格資料轉換為 DataFrame,方便進行資料分析、清洗與後續處理。
常見應用場景包括:

  • 專案管理:批次匯入進度、預算、資源分配表。
  • 團隊協作:彙整多部門回傳的 Excel 報表。
  • 數據分析:將原始數據自 Excel 轉為可程式化分析的格式。
  • 自動化流程:定期自動讀取、處理 Excel 資料。

優勢:
– 支援多種 Excel 格式與多工作表。
– 提供豐富參數,能精確控制資料讀取方式。
– 與 Pandas DataFrame 無縫整合,便於後續分析。

支援的 Excel 檔案格式與引擎選擇

pd.read_excel 支援以下常見格式:

格式 副檔名 常用引擎
Excel 97-2003 .xls xlrd
Excel 2007+ .xlsx, .xlsm openpyxl
Excel 二進位 .xlsb pyxlsb
OpenDocument .ods, .odt odf

engine 參數說明:
openpyxl:現今最推薦的 .xlsx/.xlsm 讀取引擎,功能完整。
xlrd:僅支援 .xls(新版已不支援 .xlsx)。
odf:支援 .ods、.odt。
pyxlsb:支援 .xlsb。

常見情境:
若遇到「ValueError: Excel file format cannot be determined」等錯誤,請檢查檔案格式與 engine 是否對應。

安裝與準備

安裝 pandas 與 openpyxl

在開始使用前,建議安裝最新版 pandas 及 openpyxl:

pip install pandas openpyxl
  • openpyxl 為讀取 .xlsx/.xlsm 的主要引擎。
  • 若需支援 .xlsb、.ods,請額外安裝 pyxlsbodfpy

常見安裝問題與解決方式

  • 找不到 openpyxl/odfpy/pyxlsb:
    請確認已安裝對應套件,並重啟 Python 環境。
  • Permission denied/權限問題:
    請嘗試加上 --user 參數或使用管理員權限安裝。
  • 套件版本衝突:
    建議使用虛擬環境(如 venv、conda)隔離安裝。

pd.read_excel 基本語法與參數

最基本的讀取方式

只需指定檔案路徑,即可將 Excel 第一個工作表讀入 DataFrame:

import pandas as pd

df = pd.read_excel('data.xlsx')
print(df.head())
  • 預設讀取第一個工作表。
  • DataFrame 結構可直接用於篩選、統計、視覺化等分析。

指定工作表(sheet_name)

Excel 檔案常有多個工作表,可用 sheet_name 參數指定:

# 以名稱指定
df = pd.read_excel('data.xlsx', sheet_name='任務列表')

# 以索引指定(0 為第一張表)
df = pd.read_excel('data.xlsx', sheet_name=1)

一次讀取多個工作表

若需同時讀取多個表,可傳入名稱或索引列表,或設為 None 讀取全部:

# 讀取多個指定工作表
dfs = pd.read_excel('data.xlsx', sheet_name=['任務列表', '預算表'])

# 讀取所有工作表
dfs = pd.read_excel('data.xlsx', sheet_name=None)
  • 回傳型態為字典(dict),鍵為工作表名稱,值為對應 DataFrame。
  • 實務應用:彙整多部門報表、批次資料清洗。

指定讀取的列與行(usecols、skiprows、nrows、index_col)

只讀取特定欄位

# 以欄名
df = pd.read_excel('data.xlsx', usecols=['姓名', '進度'])

# 以 Excel 欄位字母
df = pd.read_excel('data.xlsx', usecols='A:C')

跳過前幾行、只取部分資料

# 跳過前2行
df = pd.read_excel('data.xlsx', skiprows=2)

# 只讀取前10列
df = pd.read_excel('data.xlsx', nrows=10)

設定索引欄位

# 以「任務ID」欄作為索引
df = pd.read_excel('data.xlsx', index_col='任務ID')

常見錯誤:
– 欄位名稱拼錯或不存在會出現 KeyError。
– usecols、index_col 須與實際 Excel 標題對應。

處理標題列與索引(header、index_col)

  • header:指定標題列所在的行數(預設為 0,即第一行)。
  • index_col:指定哪一欄作為 DataFrame 索引。
# 標題列在第3行(從0起算)
df = pd.read_excel('data.xlsx', header=2)

應用情境:
– 匯入格式不一的報表,標題列不在第一行時特別有用。

處理缺失值(na_values、keep_default_na)

  • na_values:自訂哪些值視為缺失(NaN)。
  • keep_default_na:是否保留預設的缺失值判斷。
df = pd.read_excel('data.xlsx', na_values=['無', 'N/A'], keep_default_na=True)

常見情境:
– 報表中常見「無」、「-」等字樣,需自訂為缺失值。

設置數據類型(dtype、converters)

  • dtype:直接指定欄位型態(如 str、int)。
  • converters:自訂欄位轉換函數。
# 指定「進度」欄為字串
df = pd.read_excel('data.xlsx', dtype={'進度': str})

# 自訂轉換函數
df = pd.read_excel('data.xlsx', converters={'日期': lambda x: str(x)})

注意:
– 若欄位資料混合型態,建議用 converters 增強彈性。

其他常用參數(skipfooter、parse_dates)

  • skipfooter:跳過結尾 n 行(需搭配 engine=’python’)。
  • parse_dates:自動解析日期欄位。
df = pd.read_excel('data.xlsx', skipfooter=2, engine='python')
df = pd.read_excel('data.xlsx', parse_dates=['日期'])

進階應用與實務案例

讀取遠端 Excel 檔案

可直接讀取雲端或網路上的 Excel 檔案(需檔案公開存取權限):

url = 'https://example.com/data.xlsx'
df = pd.read_excel(url)

應用情境:
– 自動化抓取 Google Drive、Dropbox、企業內部報表。

多表合併與資料清洗流程

案例:合併多部門回報的進度表

# 讀取所有工作表
dfs = pd.read_excel('project.xlsx', sheet_name=None)

# 合併所有表
all_data = pd.concat(dfs.values(), ignore_index=True)
  • 可進一步用 dropna、fillna 處理缺失值,或用 groupby 彙總。

效能優化建議

  • 只讀取必要欄位與行數(usecols、nrows)。
  • 大檔案可分批讀取(分 sheet 或分檔案)。
  • 若只需部分資料,建議先用 Excel 篩選後再匯入。

常見錯誤訊息與排解

錯誤訊息 可能原因與解決方式
ValueError: Excel file format cannot be determined 檔案格式不符、檔案損壞、engine 未安裝
ImportError: Missing optional dependency ‘openpyxl’ 未安裝 openpyxl,請 pip install openpyxl
KeyError: ‘XXX’ 欄位名稱拼錯或不存在
UnicodeDecodeError 檔案編碼問題,請確認檔案格式
FileNotFoundError 路徑錯誤、檔案不存在

FAQ:

  • Q:為什麼讀不到資料?
    A:請確認檔案路徑、格式、權限,並檢查 sheet_name 是否正確。

  • Q:如何處理合併儲存格?
    A:pandas 會自動展開合併儲存格,若資料錯位,建議先於 Excel 另存新檔再匯入。

  • Q:只想讀取部分資料怎麼做?
    A:可用 usecols、nrows、skiprows 控制讀取範圍。

pd.read_excel 與其他工具比較

工具/函數 適用情境 優點 限制
pd.read_excel 資料分析、批次處理、資料清洗 整合 DataFrame、參數豐富 需安裝對應引擎
openpyxl 讀寫 Excel、格式控制、VBA 操作 支援格式、寫入、合併儲存格 讀取效率較低
xlrd 舊版 Excel(.xls)讀取 輕量、簡單 不支援 .xlsx
Google Sheets API 雲端表單自動化、多人協作 雲端即時同步、API 控制 需 API 設定、較複雜

選擇建議:
– 若需大量資料分析與自動化,建議以 pd.read_excel 為主。
– 若需寫入、格式控制,或處理複雜 Excel 檔案,可搭配 openpyxl。
– 雲端協作、多人同步建議考慮 Google Sheets API。

結語與延伸應用

pd.read_excel 在專案管理/數據分析的實際應用

pd.read_excel 能有效協助專案經理、團隊領導與數據分析師,快速將 Excel 報表自動化匯入、整合與分析。例如:

  • 定期自動彙整多部門回報進度,提升專案透明度。
  • 快速清洗、轉換原始 Excel 資料,減少人工整理錯誤。
  • 搭配 Monday.comClickUpNotion 等專案管理工具,將資料流程自動化,提升團隊效率。

推薦工具試用

若希望將 Excel 報表流程進一步自動化、結合專案協作,建議試用 Monday.com 等專業工具,能與多種資料來源整合,提升專案管理與團隊協作效率。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

✨ 讓專案管理變簡單,團隊更強大!

在專案推進的每一步,效率就是競爭力。monday.com 整合進度追蹤、團隊協作與資源分配,讓你隨時掌握全局、快速解決問題。
全球18萬家專業團隊已經採用,你還在等什麼?