/ 目錄 / 演練場 / excel-mcp-server
● 社群 haris-musa ⚡ 即開即用

excel-mcp-server

作者 haris-musa · haris-musa/excel-mcp-server

透過對話建立、讀取並編輯真實的 .xlsx 檔案——支援公式、表格、圖表、樞紐分析表與條件格式化。

excel-mcp-server(haris-musa)是一個透過 openpyxl 操作 Excel 活頁簿的 Python MCP。可處理本機 .xlsx 檔案,或作為遠端 HTTP 服務使用。支援公式、圖表生成、樞紐分析表、格式化與資料驗證。

為什麼要用

核心特性

即時演示

實際使用效果

excel.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": [
        "excel-mcp-server"
      ],
      "_inferred": true
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": [
        "excel-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": [
        "excel-mcp-server"
      ],
      "_inferred": true
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": [
        "excel-mcp-server"
      ],
      "_inferred": true
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "excel",
      "command": "uvx",
      "args": [
        "excel-mcp-server"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "excel": {
      "command": {
        "path": "uvx",
        "args": [
          "excel-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add excel -- uvx excel-mcp-server

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: excel-mcp-server

如何透過提示詞自動產生每月 Excel 報表

👤 營運、財務,以及需要將 Excel 傳給非技術利害關係人的所有人 ⏱ ~20 min intermediate

何時使用: 每月底需要更新「那份大家都在問的試算表」時。

前置條件
  • uv installed — curl -LsSf https://astral.sh/uv/install.sh | sh
  • A source of truth (CSV, DB query, or prior month's file) — 匯出為 CSV,或搭配 postgres MCP 使用
步驟
  1. 建立活頁簿
    Create /reports/2026-04.xlsx with tabs 'Summary', 'Revenue', 'Costs', 'Charts'.✓ 已複製
    → 檔案已建立,工作表存在
  2. 填入資料
    Fill 'Revenue' from /data/apr-revenue.csv; add a total row with SUM formulas.✓ 已複製
    → 資料列與合計列已存在
  3. 新增圖表
    On 'Charts' tab add a line chart of daily revenue from 'Revenue' A2:B31 titled 'April Revenue'.✓ 已複製
    → 在 Excel 中開啟後圖表可見
  4. 格式化
    On 'Summary', bold headers, apply thousands separators to currency, and conditional-format any red (negative) values.✓ 已複製
    → 檔案呈現專業格式

結果: 一份具備即時公式與圖表、可直接交付審閱的 .xlsx 檔案。

注意事項
  • 透過提示詞貼入 10 萬列資料會撐爆 context window — 讓 MCP 直接從磁碟讀取 CSV,而非將數值貼入提示詞
  • openpyxl 寫入的樞紐分析表在某些 Excel 版本開啟時不會自動重新整理 — 指示使用者右鍵點選「重新整理」;或改用公式型摘要替代
搭配使用: postgres · filesystem

如何將 Excel 試算表中的表格擷取為 Markdown 格式

👤 需要將財務試算表轉換為文件的工程師 ⏱ ~10 min beginner

何時使用: 利害關係人傳來一份活頁簿,而你需要將其放入 Wiki 時。

步驟
  1. 列出工作表
    Open /inbox/Q1-plan.xlsx and list sheets + dimensions.✓ 已複製
    → 工作表索引
  2. 將各工作表擷取為 Markdown
    For each sheet, read the used range and render as a markdown table.✓ 已複製
    → Markdown 內容已可貼上使用

結果: 可直接貼入 Wiki 的表格內容。

注意事項
  • 合併儲存格會破壞 Markdown 渲染結果 — 匯出前先取消合併,或明確處理合併區域
搭配使用: markdownify · notion

如何一次性清理雜亂的 Excel 檔案

👤 資料整理人員 ⏱ ~15 min intermediate

何時使用: 合作夥伴傳來一份含有日期格式不一致、尾端空白與重複標題的工作表時。

步驟
  1. 分析問題
    Audit /inbox/vendors.xlsx — columns with mixed types, whitespace, duplicate rows.✓ 已複製
    → 問題報告
  2. 套用修正
    Trim whitespace, parse column E as dates in ISO, remove full-duplicate rows. Save to /cleaned/vendors.xlsx.✓ 已複製
    → 已儲存乾淨的檔案

結果: 一份已清理完畢、可直接匯入的活頁簿。

注意事項
  • 將原本刻意保留為文字的日期「修正」掉會造成語意遺失 — 進行強制轉換前先與資料擁有者確認
搭配使用: postgres

組合

與其他 MCP 搭配,撬動十倍槓桿

excel + postgres

查詢資料庫並將結果寫入 Excel 供利害關係人使用

Run SELECT * FROM monthly_revenue WHERE month = '2026-04' and write the result to /reports/apr.xlsx with a chart.✓ 已複製
excel + filesystem

批次處理資料夾中的所有 xlsx 檔案

For every file in /inbox/vendors/, unify the headers to {vendor,sku,qty,price} and write to /cleaned/.✓ 已複製
excel + markdownify

將 xlsx 表格轉換為 Markdown 文件

Extract each sheet of /inbox/plan.xlsx to markdown sections and write /docs/plan.md.✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
create_workbook path: str 建立新的 .xlsx 檔案 free
create_worksheet path, name 新增工作表分頁 free
write_data_to_excel path, sheet, start_cell, data: 2d array 填入指定範圍的資料 free
read_data_from_excel path, sheet, range 擷取儲存格數值 free
apply_formula path, sheet, cell, formula 新增公式 free
create_chart path, sheet, chart_type, range, title 插入圖表 free
create_pivot_table path, source, rows, cols, values 彙總資料 free
format_range path, sheet, range, styles 套用樣式格式化 free
apply_conditional_formatting path, sheet, range, rule 以顏色標示儲存格 free

成本與限制

運行它的成本

API 配額
無——全部本機處理
每次呼叫 Token 數
取決於流經提示詞的資料量;建議優先使用檔案路徑操作
費用
免費(MIT 授權)
提示
當檔案超過 10 萬列時,讀取指定範圍而非整張工作表。

安全

權限、密鑰、影響範圍

最小權限: Filesystem read/write to the folder containing the workbooks
憑證儲存:
資料出站: 僅限本機檔案 I/O;資料只會透過你的 LLM 提供者離開本機
切勿授予: Write access outside a sandboxed folder when running untrusted prompts

故障排查

常見錯誤與修復

Permission denied writing file

另一個程式正在開啟該檔案(通常是 Excel 本身)。關閉後重試。

驗證: lsof path/to/file.xlsx
Formula stored as text

= 開頭的字串請透過 apply_formula 而非 write_data_to_excel 寫入。

Chart doesn't render in Excel

確認資料範圍涵蓋含標題的來源欄位;Excel 需要至少 2 列資料。

File saved but Excel says 'corrupted'

通常是在同一個儲存格中混用 write_data 與公式所致。重新建立檔案,從底層往上建構。

替代方案

excel-mcp-server 對比其他方案

替代方案何時用它替代權衡
Google Sheets via google-workspace MCP你需要雲端協作試算表,而非本機 .xlsx 時需要 OAuth 授權;無法取代離線 xlsx 使用情境
LibreOffice headless MCP你需要執行巨集或轉換為 PDF 時安裝包較大;執行速度較慢

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills