Pandas 將數據導出至 Excel:完整教學與實務應用

本教學全面介紹 Pandas 將數據導出至 Excel 的各種方法,從基礎語法到多工作表、格式化、部分資料匯出、追加資料與數據透視表,並結合實務案例與常見問題解析,協助專案經理與知識工作者高效產出自動化報表。

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

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

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

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

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

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

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

前言與適用情境

在專案管理、團隊協作與數據分析的日常工作中,將處理後的數據自動匯出至 Excel 是常見需求。無論是產生專案進度報表、團隊績效統計,還是將資料庫資料轉換為可視化文件,Pandas 都能大幅簡化流程。透過本教學,你將學會如何靈活運用 Pandas 將數據匯出為 Excel,並掌握各種進階應用技巧,有效提升工作效率。

環境安裝與準備

在開始之前,請確認已安裝以下 Python 套件:

  • pandas:數據處理核心庫
  • openpyxl:支援 .xlsx 格式 Excel 檔案的讀寫
  • xlsxwriter(可選):進階格式化與大數據匯出時的替代方案

安裝指令如下:

pip install pandas openpyxl xlsxwriter

openpyxl 適合大多數 .xlsx 檔案操作,若需進階格式化或處理大量數據,建議改用 xlsxwriter

Pandas 匯出 Excel 基本語法

建立 DataFrame 範例

Pandas 的 DataFrame 可來自多種來源:手動建立、讀取 CSV、資料庫查詢等。以下為三種常見方式:

import pandas as pd

# 1. 手動建立
df_manual = pd.DataFrame({
    '姓名': ['王小明', '李小華'],
    '分數': [90, 85]
})

# 2. 讀取 CSV
df_csv = pd.read_csv('data.csv')

# 3. 從資料庫查詢
import sqlite3
conn = sqlite3.connect('example.db')
df_db = pd.read_sql_query('SELECT * FROM users', conn)

to_excel() 基本用法與參數詳解

將 DataFrame 匯出為 Excel 檔案,最常用的方法為 to_excel()。基本範例如下:

df_manual.to_excel('output.xlsx', index=False)

常用參數說明:

參數 功能說明 範例
index 是否輸出索引 index=False
header 是否輸出欄位名稱 header=True
sheet_name 指定工作表名稱 sheet_name=’成績表’
encoding 指定編碼(.xls 時需特別注意) encoding=’utf-8′
startrow 資料起始列 startrow=2
engine 指定引擎(openpyxl/xlsxwriter) engine=’xlsxwriter’

常見錯誤與解決方式:

  • ModuleNotFoundError: No module named ‘openpyxl’
    → 請確認已安裝 openpyxl。
  • PermissionError: 檔案被佔用
    → 關閉已開啟的 Excel 檔案後重試。
  • UnicodeEncodeError(中文亂碼)
    → 匯出 .xls 時請指定 encoding=’utf-8’,或優先使用 .xlsx 格式。

進階應用

自訂工作表名稱與多工作表匯出

若需將多個 DataFrame 匯出至同一 Excel 檔案的不同工作表,可搭配 ExcelWriter 使用:

with pd.ExcelWriter('多工作表範例.xlsx', engine='openpyxl') as writer:
    df_manual.to_excel(writer, sheet_name='成績表', index=False)
    df_csv.to_excel(writer, sheet_name='原始資料', index=False)

適用情境專案月報、團隊多部門數據彙整等。

注意事項
– 若需追加資料至現有 Excel,請加上 mode='a' 並指定 if_sheet_exists 參數(openpyxl 支援)。
– 多工作表操作時,建議確保每個 sheet_name 唯一,避免覆蓋。

只匯出部分欄位或列

實務上常需僅匯出部分資料。可透過 DataFrame 過濾:

# 只匯出姓名與分數欄位,且分數大於85
df_filtered = df_manual[df_manual['分數'] > 85][['姓名', '分數']]
df_filtered.to_excel('高分同學.xlsx', index=False)

應用案例:產生高績效員工名單、篩選特定專案進度。

進階格式化技巧

Pandas 可結合 xlsxwriter 進行進階格式化,如設定欄寬、標題樣式、條件格式、凍結窗格等:

with pd.ExcelWriter('格式化範例.xlsx', engine='xlsxwriter') as writer:
    df_manual.to_excel(writer, sheet_name='成績表', index=False)
    workbook  = writer.book
    worksheet = writer.sheets['成績表']
    worksheet.set_column('A:B', 15)  # 設定欄寬
    header_format = workbook.add_format({'bold': True, 'bg_color': '#D7E4BC'})
    worksheet.write('A1', '姓名', header_format)
    worksheet.freeze_panes(1, 0)  # 凍結首列

產業應用:自動產生格式統一的專案進度表、團隊績效報表。

追加數據到現有 Excel

若需將新數據追加至現有 Excel,不覆蓋原有內容,可使用 openpyxl 的 append 模式:

with pd.ExcelWriter('output.xlsx', engine='openpyxl', mode='a', if_sheet_exists='overlay') as writer:
    df_new.to_excel(writer, sheet_name='成績表', index=False, header=False, startrow=writer.sheets['成績表'].max_row)

注意:追加時 header 須設為 False,startrow 指定起始列。

數據透視表與報表自動化

Pandas 的 pivot_table() 可快速產生數據透視表,適合自動化產出專案統計或團隊績效分析:

# 以部門分組,計算平均分數
pivot = pd.pivot_table(df, index='部門', values='分數', aggfunc='mean')
pivot.to_excel('部門平均分數.xlsx', sheet_name='透視表')

Pandas 透視表 vs. Excel 樞紐分析表
Pandas 產生的透視表為靜態數據,適合自動化流程;Excel 樞紐分析表則可互動操作,適合手動分析。

實務案例
專案管理:自動彙整各專案進度、預算統計
– 團隊協作:產生各部門月度績效報表,並自動寄送給相關負責人

常見問題與FAQ

Q1:匯出 Excel 檔案打不開,或出現檔案損毀訊息?
A:請確認匯出過程未中斷,且未同時開啟該檔案。建議使用 openpyxl 或 xlsxwriter 引擎。

Q2:中文欄位或內容出現亂碼?
A:請優先匯出為 .xlsx 格式,避免 .xls。若需 .xls,指定 encoding=’utf-8’。

Q3:數字格式跑掉(如 001 變成 1)?
A:可將欄位轉為字串型態再匯出:df['員工編號'] = df['員工編號'].astype(str)

Q4:如何提升大量數據匯出效能?
A:建議使用 xlsxwriter 引擎,並避免匯出不必要的欄位或列。

Q5:匯出時如何保留原有 Excel 格式?
A:Pandas 匯出會覆蓋原格式。若需保留格式,建議先用 openpyxl 讀取原檔案,再寫入新資料。

結論與進一步提升建議

熟練運用 Pandas 將數據匯出至 Excel,能大幅提升專案管理、團隊協作與數據分析的自動化效率。無論是定期產生進度報告、績效統計,還是自動化資料彙整,都能節省大量人力與時間。若需進一步整合任務追蹤、進度管理與自動報表,建議搭配 Monday.com 等專業專案管理工具,將數據流與團隊協作無縫串接,打造高效數位工作流程。

發佈留言

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

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

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