/ 目录 / 演练场 / 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 已安装 — curl -LsSf https://astral.sh/uv/install.sh | sh
  • 真实数据源(CSV、数据库查询或上个月的文件) — 导出为 CSV,或配合 postgres MCP
步骤
  1. 创建工作簿
    创建 /reports/2026-04.xlsx,包含「Summary」、「Revenue」、「Costs」、「Charts」这几个标签页。✓ 已复制
    → 文件已创建,工作表存在
  2. 填充数据
    从 /data/apr-revenue.csv 填充「Revenue」;用 SUM 公式添加合计行。✓ 已复制
    → 行和合计已存在
  3. 添加图表
    在「Charts」标签页添加一个折线图,显示「Revenue」A2:B31 中的日收入数据,标题为「April Revenue」。✓ 已复制
    → 在 Excel 打开时图表可见
  4. 格式化
    在「Summary」上,加粗标题,对货币应用千位分隔符,并为任何红色(负值)应用条件格式。✓ 已复制
    → 专业格式化的文件

结果: 一个审核人员可用的 .xlsx 文件,包含活动公式和图表。

注意事项
  • 通过对话粘贴 10 万行会爆掉上下文窗口 — 让 MCP 直接从磁盘读取 CSV,而不是粘贴数值
  • openpyxl 写入的数据透视表在某些 Excel 版本中打开时不会自动刷新 — 让用户右键刷新;或改用基于公式的摘要
搭配使用: postgres · filesystem

如何从 Excel 工作簿中提取表格到 markdown

👤 将财务电子表格转换为文档的工程师 ⏱ ~10 min beginner

何时使用: 利益相关者给你一个工作簿,你需要把它放到 wiki 中。

步骤
  1. 列举工作表
    打开 /inbox/Q1-plan.xlsx,列出工作表及其尺寸。✓ 已复制
    → 工作表索引
  2. 将每个表格导出为 markdown
    对于每个工作表,读取已用范围并渲染为 markdown 表格。✓ 已复制
    → markdown 文本块已准备好粘贴

结果: 可用于 wiki 的表格。

注意事项
  • 合并单元格会破坏 markdown 渲染 — 导出前取消合并,或明确处理合并区域
搭配使用: markdownify · notion

如何一次性清理混乱的 Excel 文件

👤 数据处理人员 ⏱ ~15 min intermediate

何时使用: 合作伙伴发来一个包含日期不一致、尾部空格和重复标题的表格。

步骤
  1. 分析问题
    审计 /inbox/vendors.xlsx——找出混合类型的列、空格和重复行。✓ 已复制
    → 问题报告
  2. 应用修复
    删除空格,将 E 列解析为 ISO 日期,删除完全重复的行。保存到 /cleaned/vendors.xlsx。✓ 已复制
    → 干净文件已保存

结果: 准备好导入的干净工作簿。

注意事项
  • 「修复」有意为文本的日期会失去含义 — 在进行强制转换前与所有者确认
搭配使用: postgres

组合

与其他 MCP 搭配,撬动十倍杠杆

excel + postgres

查询数据库并将结果写入 Excel 供利益相关者使用

运行 SELECT * FROM monthly_revenue WHERE month = '2026-04',将结果写入 /reports/apr.xlsx 并添加图表。✓ 已复制
excel + filesystem

批量处理文件夹中的所有 xlsx 文件

对 /inbox/vendors/ 中的每个文件,统一标题为 {vendor,sku,qty,price},写入 /cleaned/。✓ 已复制
excel + markdownify

将 xlsx 表格转换为 markdown 文档

将 /inbox/plan.xlsx 的每个工作表导出为 markdown 部分,写入 /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 万+ 行时,读取范围而不是整个工作表。

安全

权限、密钥、影响范围

最小权限: 对包含工作簿的文件夹的文件系统读写权限
凭据存储:
数据出站: 仅本地文件 I/O;数据仅通过你的 LLM 提供商离开你的机器
切勿授予: 运行不受信任的对话时,不要授予沙箱文件夹外的写入权限

故障排查

常见错误与修复

权限被拒绝,无法写入文件

另一个程序打开了该文件(通常是 Excel)。关闭它并重试。

验证: lsof path/to/file.xlsx
公式存储为文本

通过 apply_formula 而不是 write_data_to_excel 为以「=」开头的字符串添加前缀。

图表在 Excel 中未呈现

检查数据范围是否覆盖带标题的源列;Excel 需要至少 2 行。

文件已保存但 Excel 显示「损坏」

通常是在同一单元格中混合了 write_data 和公式。重新创建文件,从下往上构建。

替代方案

excel-mcp-server 对比其他方案

替代方案何时用它替代权衡
通过 google-workspace MCP 的 Google Sheets你想要协作云表格,而不是本地 .xlsx需要 OAuth;不是离线 xlsx 的替代品
LibreOffice 无头 MCP你需要宏执行或转换为 PDF安装庞大;速度较慢

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills