Python 操作 Excel 教學:基礎入門、進階技巧與實務應用全攻略

本教學全面介紹 Python 處理 Excel 的基礎與進階技巧,從套件選擇、安裝環境、基本讀寫、格式設定到多檔案合併、圖表插入與常見錯誤排解,並解析 Python in Excel 最新應用,提供實務案例與常見問題解答,助你高效掌握 Excel 自動化。

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

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

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

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

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

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

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

Python 操作 Excel 的應用場景與優勢

Python 在處理 Excel 文件時,展現出極高的彈性與效率。對於專案經理、團隊領導、資料分析師或需要自動化報表的上班族而言,Python 能夠:

  • 自動化重複性工作:如每週彙整多份報表、批次更新資料、產生統計摘要。
  • 批次處理大量檔案:一次處理多個 Excel 檔案,節省人工合併與整理時間。
  • 進行複雜資料分析:結合 pandas 等資料科學工具,進行篩選、統計、視覺化。
  • 跨平台協作:無論在 Windows、Mac 或 Linux,皆可運行相同的 Python 腳本。
  • 彈性整合多種數據來源:輕鬆將 Excel 與資料庫、API、CSV 等格式互通。

相較於手動操作或 VBA,Python 更適合需要高度自訂、跨平台與大量自動化的情境。例如,某跨國團隊每月需彙整各地分公司的 Excel 報表,透過 Python 可自動合併、清理與分析,大幅減少人力錯誤與時間成本。

Python 操作 Excel 的常用套件介紹與選擇建議

Python 處理 Excel 主要有以下幾種套件,各有適用情境:

套件名稱 適用格式 主要功能 優點 適合情境
openpyxl xlsx 讀寫、格式、公式、圖表 支援格式設定、插入圖表、操作細緻 需控制格式、插入圖表、進階操作
pandas xls, xlsx 讀寫、資料分析 讀寫速度快、資料處理強大 批次資料分析、合併、篩選
xlrd xls, xlsx(舊) 讀取 輕量、適合舊格式 只需讀取舊版 Excel
xlwt xls 寫入 輕量、適合舊格式 只需寫入舊版 Excel
xlsxwriter xlsx 寫入、格式、圖表 格式設定彈性、支援圖表 需大量格式化、產生報表
pyxlsb xlsb 讀取二進位格式 支援 .xlsb 檔案 處理大型二進位 Excel

選擇建議
– 需進行資料分析、批次處理:建議用 pandas。
– 需細緻控制格式、插入圖表、公式:建議用 openpyxl 或 xlsxwriter。
– 處理舊版 .xls:可用 xlrd、xlwt。
– 需讀取 .xlsb:用 pyxlsb。

安裝與環境建議

安裝方式

  • pip 安裝(適用所有平台)
    bash
    pip install openpyxl pandas xlsxwriter
  • Anaconda 環境
    建議資料分析、科學運算用戶使用 Anaconda,內建 pandas,安裝 openpyxl:
    bash
    conda install openpyxl

作業系統注意事項

  • Windows/Mac/Linux:上述套件皆支援,安裝方式相同。
  • Python 版本建議:建議 3.7 以上,避免相容性問題。
  • 常見安裝問題:若遇到權限問題,可加上 --user,或確認 pip/conda 已更新。

常見安裝錯誤與排解

  • 找不到 pip:請確認 Python 已加入環境變數。
  • 安裝失敗:檢查網路、權限或套件名稱拼寫。

Excel 基礎操作教學

openpyxl 讀取與寫入 Excel

讀取 Excel 範例

import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook['Sheet1']  # 指定工作表
value = sheet['A1'].value
print(value)

常見應用情境:自動讀取報表、抓取指定欄位資料。

寫入 Excel 範例

import openpyxl

workbook = openpyxl.Workbook()
sheet = workbook.active
sheet['A1'] = '姓名'
sheet['B1'] = '分數'
sheet.append(['王小明', 90])
workbook.save('output.xlsx')

延伸技巧:可用 append() 批次寫入多列資料。

多工作表操作

sheet2 = workbook.create_sheet('統計')
sheet2['A1'] = '總分'
workbook.save('output.xlsx')

常見錯誤:工作表名稱重複會報錯,請先檢查是否已存在。

pandas 讀取與寫入 Excel

讀取 Excel

import pandas as pd

df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
print(df.head())

適用場景:需進行大量資料篩選、統計、合併時。

寫入 Excel

df.to_excel('output.xlsx', index=False, sheet_name='結果')

注意事項index=False 可避免多餘索引欄。

多工作表寫入

with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='原始資料')
    df2.to_excel(writer, sheet_name='分析結果')

常見錯誤:若檔案已開啟,寫入會失敗,請先關閉 Excel。

進階應用技巧

多工作表與多檔案操作

合併多個 Excel 檔案

import pandas as pd
import glob

files = glob.glob('data/*.xlsx')
dfs = [pd.read_excel(f) for f in files]
merged = pd.concat(dfs, ignore_index=True)
merged.to_excel('merged.xlsx', index=False)

產業案例:每月自動合併各部門上傳的業績報表。

資料篩選、排序與轉換

filtered = df[df['分數'] > 80]
sorted_df = filtered.sort_values(by='分數', ascending=False)

常見錯誤:欄位名稱需完全一致,否則會 KeyError。

格式設定與公式插入(openpyxl)

設定字型、顏色

from openpyxl.styles import Font, PatternFill

sheet['A1'].font = Font(bold=True, color='FF0000')
sheet['A1'].fill = PatternFill('solid', fgColor='FFFF00')

插入公式

sheet['C2'] = '=SUM(B2:B10)'

常見應用:自動產生統計欄位,減少手動計算。

插入圖表與圖片

插入圖表

from openpyxl.chart import BarChart, Reference

chart = BarChart()
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)
chart.add_data(data, titles_from_data=True)
sheet.add_chart(chart, "E5")

產業應用:自動產生業績長條圖,嵌入報表。

插入圖片

from openpyxl.drawing.image import Image

img = Image('logo.png')
sheet.add_image(img, 'A10')

注意事項:圖片需為支援格式(如 PNG、JPEG)。

常見錯誤與排解

  • 中文亂碼:請確認檔案編碼與 Excel 設定一致,pandas 讀寫時可加 encoding='utf-8'
  • 日期格式錯亂:openpyxl 讀取日期時,建議用 cell.value.strftime('%Y-%m-%d')
  • 合併儲存格操作:用 sheet.merge_cells('A1:B1'),但合併後僅左上儲存格有值。
  • 檔案損毀:寫入時請勿同時開啟 Excel 檔案,避免損壞。

Python in Excel(Microsoft 365 新功能簡介)

Microsoft 365 近期推出「Python in Excel」功能,允許用戶直接在 Excel 儲存格中撰寫與執行 Python 程式碼。此功能適合:

  • 需在 Excel 內即時分析資料、產生視覺化圖表
  • 不熟悉外部 Python 環境但需進行進階分析的用戶

優點:無需安裝額外套件、與 Excel 公式無縫整合、雲端運算資源。

限制:目前僅支援部分訂閱用戶,且部分 Python 套件受限。

比較
– 傳統 Python 操作 Excel:彈性高、可自動化批次處理、適合大量檔案與複雜流程。
– Python in Excel:適合即時分析、單一檔案、互動式操作。

實際應用案例分享

案例一:自動化月報產生

某企業每月需彙整多部門 Excel 報表,過去需人工複製、整理。導入 Python 腳本後,自動讀取各部門檔案、合併、產生統計圖表,並自動寄送結果,大幅提升效率並減少錯誤。

案例二:批次資料清理與轉換

一位專案經理需將多份供應商提供的 Excel 檔案,統一欄位名稱、格式與日期,透過 pandas 自動轉換與合併,節省大量人工校對時間。

案例三:團隊協作自動化

團隊利用 Python 腳本與雲端協作工具(如 Monday.com),自動同步 Excel 任務進度表,確保專案資訊即時更新,提升跨部門溝通效率。

FAQ:Python 操作 Excel 常見問題集

Q1:如何避免寫入 Excel 時出現「檔案被佔用」錯誤?

A:請確認 Excel 檔案未被開啟,或寫入前關閉所有相關程式。

Q2:pandas 讀取 Excel 時出現「ValueError: Excel file format cannot be determined」怎麼辦?

A:請確認檔案副檔名正確,且檔案未損毀,必要時指定 engine='openpyxl'

Q3:openpyxl 寫入中文時出現亂碼?

A:openpyxl 原生支援 utf-8,若出現亂碼多為 Excel 顯示問題,請確認字型設定。

Q4:如何同時寫入多個工作表?

A:pandas 可用 ExcelWriter,openpyxl 可用 create_sheet 新增工作表。

Q5:如何在 Excel 中插入自訂公式?

A:openpyxl 可直接將公式字串寫入儲存格,如 sheet['B2'] = '=SUM(A2:A10)'

總結與工具推薦

Python 在處理 Excel 檔案時,無論是自動化日常報表、批次資料清理、進階資料分析,皆展現出高度彈性與效率。建議根據實際需求選擇合適套件,並結合團隊協作平台(如 Monday.com)、線上課程資源(如 Coursera),進一步提升專案管理與資料處理能力。若希望系統性學習 Python 與資料分析,亦可考慮相關線上課程,快速掌握實務技巧。

發佈留言

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

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

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