Python Excel 讀取教學:一次搞懂 pandas 與 openpyxl 實務應用與常見問題

本教學全面介紹 Python 讀取 Excel 的方法,涵蓋 pandas 與 openpyxl 的安裝、格式支援、進階參數、常見問題與產業應用,並提供實用技巧與錯誤處理建議,助你在專案管理與團隊協作中高效處理資料。

Notion 新創專屬 3 個月免費福利| 官方合作夥伴限定

經本站專屬連結申請,即享 3 個月 Notion Plus + AI 無限免費 (市價 $6,000 美元)! 務必保留推薦碼 venturer ,否則不符資格。 全程免費,無需信用卡。需用公司 Email 與有效公司網站。
免費使用

200+模板自動化工作流程

從數據到成果,只需一步 — 用Monday代替Excel,效率倍增!
免費使用

AI智能團隊協作

AI驅動的ClickUp超越Excel,讓工作更精準快速!
免費使用

Python 讀取 Excel 教學總覽

Excel 是專案管理、數據分析與日常辦公不可或缺的工具。隨著自動化需求提升,利用 Python 讀取與處理 Excel 檔案已成為知識工作者與團隊領導的必備技能。Python 提供多種套件協助你高效讀取、分析、整合 Excel 資料,其中以 pandas 與 openpyxl 最為主流。
本教學將深入解析這兩大工具的適用情境、安裝步驟、進階用法與常見問題,並結合實務案例,協助你解決日常工作痛點,提升團隊協作效率。

產業應用情境

  • 專案經理需合併多份進度報告,快速產出統計分析。
  • 行政人員需自動讀取多個部門的 Excel 表單,彙整成統一格式。
  • 數據分析師需批次處理大型 Excel 檔案,進行資料清洗與視覺化。

安裝與準備工作

安裝必要套件(pandas、openpyxl)

建議使用 Python 3.8 以上版本,確保相容性與效能。
安裝指令如下:

pip install pandas openpyxl
  • pandas:適合大量資料分析、表格運算、快速讀取與寫入。
  • openpyxl:適合需要操作 Excel 格式、樣式、公式,或需細緻控制單元格內容時。

如需處理舊版 .xls 格式,可考慮安裝 xlrd,但新版 pandas 已不再支援 .xls,建議將檔案轉為 .xlsx。

Excel 檔案格式支援說明

格式 pandas 支援 openpyxl 支援 備註
.xlsx ✔️ ✔️ 主流格式,建議優先使用
.xls 部分支援 pandas 需額外安裝 xlrd
.csv ✔️ pandas 直接支援

建議: 若遇到格式錯誤,請先將檔案另存為 .xlsx。

使用 pandas 讀取 Excel

pandas 是資料分析的強大工具,能將 Excel 轉為 DataFrame,方便進行篩選、統計、合併等操作。

基本讀取與 DataFrame 操作

import pandas as pd

# 讀取 Excel 檔案
df = pd.read_excel('data.xlsx')
print(df.head())  # 顯示前五筆資料

常見參數說明:
sheet_name:指定工作表名稱或索引(預設讀取第一張)。
header:指定標題列(預設為第 0 列)。
usecols:指定讀取的欄位範圍。
skiprows:跳過前 n 列。

實務案例:
專案經理只需彙整「進度」與「負責人」兩欄,可這樣讀取:

df = pd.read_excel('project.xlsx', usecols=['進度', '負責人'])

選擇特定工作表與範圍

讀取指定工作表:

df = pd.read_excel('data.xlsx', sheet_name='部門A')

讀取多個工作表:

all_sheets = pd.read_excel('data.xlsx', sheet_name=None)  # 回傳 dict,key 為工作表名

讀取特定列與欄:

df = pd.read_excel('data.xlsx', skiprows=2, usecols='B:D')

常見錯誤處理:
– 若遇到「ValueError: Excel file format cannot be determined」:請確認檔案副檔名與內容一致,並嘗試另存為 .xlsx。
– 若出現亂碼,可加上 encoding='utf-8',但 Excel 通常不需指定編碼,若仍有問題,請檢查原始檔案內容。

進階應用與常見問題

多檔案合併

情境: 每月有多份報表需合併分析。

import glob

files = glob.glob('reports/*.xlsx')
df_list = [pd.read_excel(f) for f in files]
merged_df = pd.concat(df_list, ignore_index=True)

缺失值處理

df.fillna(0, inplace=True)  # 將缺失值補 0

讀取大型檔案效能建議

  • 只讀取必要欄位與列(用 usecols、nrows)。
  • 分批處理,避免一次載入全部資料。

中文亂碼處理

  • pandas 讀取 Excel 通常不會亂碼,若遇到亂碼,多半是原始檔案儲存格式有誤,建議重新另存檔案。

使用 openpyxl 讀取 Excel

openpyxl 適合需要操作 Excel 格式、樣式、公式或需細緻控制單元格內容的場合,僅支援 .xlsx 格式。

基本讀取與儲存格操作

from openpyxl import load_workbook

wb = load_workbook('data.xlsx')
ws = wb.active  # 取得預設工作表
print(ws['A1'].value)  # 讀取 A1 儲存格內容

讀取指定工作表:

ws = wb['部門A']

讀取多個儲存格:

for row in ws['A1':'C3']:
    for cell in row:
        print(cell.value)

迭代資料與進階操作

逐行讀取所有資料:

for row in ws.iter_rows(values_only=True):
    print(row)

處理合併儲存格:

  • 讀取合併儲存格時,僅左上角儲存格有值,其餘為 None。
  • 可用 ws.merged_cells.ranges 取得所有合併範圍。

讀取公式結果:

  • openpyxl 讀取公式儲存格時,預設只會顯示公式本身,若需取得計算結果,需先在 Excel 另存檔案並儲存值。

pandas 與 openpyxl 選擇比較

需求情境 pandas 適用 openpyxl 適用
大量資料分析 ✔️
需操作格式/樣式 ✔️
只需讀取表格內容 ✔️ ✔️
需讀寫公式/圖片 ✔️
支援 .xls 格式 部分支援

實務建議:
– 資料分析、批次處理:優先選擇 pandas。
– 需控制格式、公式、合併儲存格:選擇 openpyxl。

常見問題(FAQ)

Q1:為什麼讀取 Excel 時出現格式錯誤或亂碼?

A:請確認檔案為 .xlsx 格式,若為 .xls 請另存為 .xlsx。亂碼通常與 Excel 檔案本身無關,若仍有問題,檢查原始資料是否含特殊字元。

Q2:如何讀取多個 Excel 檔案並合併?

A:可用 pandas 的 globconcat,詳見上方「多檔案合併」範例。

Q3:openpyxl 讀取合併儲存格時,為何部分儲存格為 None?

A:合併儲存格僅左上角有值,其餘儲存格會顯示為 None,需特別處理。

Q4:pandas 讀取 Excel 時遇到「ValueError: Excel file format cannot be determined」怎麼辦?

A:請確認檔案副檔名與實際格式一致,建議另存為 .xlsx 再讀取。

Q5:如何提升大型 Excel 檔案的讀取效能?

A:只讀取必要欄位與列,分批處理,或考慮將資料轉為 CSV 格式再處理。

結論與工具推薦

Python 讀取 Excel 不僅能大幅提升資料處理效率,更能協助專案管理、團隊協作與自動化日常工作。根據需求選擇 pandas 或 openpyxl,能讓你在不同場景下發揮最大效益。
若你希望進一步提升團隊協作效率,建議可結合 Monday.comClickUpNotion 等現代化專案管理工具,將資料整合、任務追蹤與自動化流程無縫串接,打造高效數位辦公環境。

發佈留言

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

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

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