Excel文件操作服务器

一个无需安装Microsoft Excel即可通过AI助手执行Excel文件操作的MCP服务器。

  • by mort-lab
  • Python
  • 混合部署
  • 5 星标
  • 更新于
在 GitHub 查看 mort-lab/excel-mcp

使用说明

Excel MCP服务器

全面 模型上下文协议 (MCP)服务器,使AI助手能够执行Excel文件操作,而无需安装Microsoft Excel。

为什么选择此服务器?

功能 Excel MCP服务器 替代方案
无需Excel ✅ 纯Python(openpyxl) ❌ 需要MS Office
交叉平台的 ✅ Windows、Mac、Linux⚠️ 有限
类型安全 ✅ 完整的Pydantic验证 ❌ 无验证
格式化支持 ✅ 字体、颜色、边框 ⚠️ 仅限基本
公式支持 ✅ 完整的Excel公式 ⚠️ 有限
MCP协议 ✅ 本地支持 ❌ 自定义协议
远程部署 ✅ Smithery准备好了❌ 仅限本地

特性

  • 📊 工作簿管理:创建、打开、保存Excel工作簿
  • 📄 工作表操作:创建、删除、重命名、复制工作表
  • 📝 细胞操作:读取和写入单个单元格或范围
  • 🔢 公式支持:编写和计算Excel公式
  • 🎨 丰富的格式:字体、颜色、边框、对齐方式、数字格式
  • ✅ 类型安全 Pydantic验证操作
  • ✅ 经过充分测试 17次测试

安装

🚀 Smithery(推荐)

全球部署并与任何人共享- 无需安装!

{
  "mcpServers": {
    "excel": {
      "url": "https://server.smithery.ai/@mort-lab/excel-mcp/mcp"
    }
  }
}

💻 本地安装

# Using uvx (recommended)
uvx excel-mcp-server

# Using pip
pip install excel-mcp-server

# From source
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync

快速开始

添加到您的Claude Desktop配置中:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "excel": {
      "command": "uvx",
      "args": ["excel-mcp-server"]
    }
  }
}

重新启动Claude Desktop并开始使用Excel操作!

示例用法

"Create a new Excel workbook called sales_report.xlsx"
"Write 'Product' to cell A1 in Sheet1"
"Format the header row with bold text and blue background"
"Add a formula in D2 that multiplies B2 and C2"
"Read the data from range A1:D10"

与作者联系

让我们在LinkedIn上建立联系!

我是 马丁·伊鲁罗茨基,一位全栈开发人员,热衷于人工智能自动化、构建智能工具,并创造出与众不同的现实世界解决方案。如果你:

  • 🚀 想讨论MCP服务器、AI集成和自动化
  • 💡 对新功能或实际用例有想法
  • 🤝 对合作机会感兴趣
  • 🛠️ 使用AI构建工具和解决方案
  • 🌟 只想与其他开发人员建立联系和网络

在LinkedIn上与我联系→

我很想听听你的项目,以及这个Excel MCP服务器是如何帮助你构建令人惊叹的东西的!


可用工具

服务器提供 20个MCP工具 分为4类:

工作簿操作(3个工具)

  • create_workbook(file_path) -创建新的Excel工作簿
  • get_workbook_info(file_path) -获取工作簿元数据
  • list_sheets(file_path) -列出所有工作表名称

表格操作(4个工具)

  • create_sheet(workbook_path, sheet_name, index?) -创建新工作表
  • delete_sheet(workbook_path, sheet_name) -删除工作表
  • rename_sheet(workbook_path, old_name, new_name) -重命名工作表
  • copy_sheet(workbook_path, source_sheet, new_name) -复制工作表

细胞操作(5个工具)

  • write_cell(workbook_path, sheet_name, cell, value) -写入单元格
  • read_cell(workbook_path, sheet_name, cell) -从单元格读取
  • write_range(workbook_path, sheet_name, start_cell, data) -将数据写入范围
  • read_range(workbook_path, sheet_name, range_ref) -从某个范围读取数据
  • write_formula(workbook_path, sheet_name, cell, formula) -写一个公式

格式化操作(8个工具)

  • format_font(...) -应用字体格式(粗体、斜体、颜色、大小)
  • format_fill(...) -应用背景颜色
  • format_border(...) -应用单元格边框
  • format_alignment(...) -应用文本对齐
  • format_number(...) -应用数字格式

真实世界用例

📊 自动报告

自动生成月度销售报告,其中包含格式化的数据、计算和专业样式,可与利益相关者共享。

📈 数据分析

导入和转换数据,应用统计函数(SUM、AVERAGE、STDEV),创建汇总表,并导出结果。

🎨 发票生成

使用自定义格式、公司品牌、自动计算和公式驱动的总计创建专业发票。

📋 库存管理

通过实时更新、警报的条件格式和自动重新订购计算来跟踪库存水平。

📑 数据迁移

读取旧Excel文件,清理和转换数据,应用新的格式标准,并导出到新结构。

例子

示例1:格式化销售报告

问克劳德:

Create a sales report in sales_2024.xlsx with:
1. Headers: Date, Product, Quantity, Price, Total
2. Format headers: Bold, white text, blue background (#4472C4)
3. Add 10 sample sales entries with realistic data
4. Total column formula: =C2*D2 (for each row)
5. Format prices as currency: $#,##0.00
6. Add borders around all cells (thin, black)
7. Center-align all headers
8. Sum total sales in the last row with bold formatting

结果: 具有自动计算功能的专业报告,格式完整,可随时共享。

示例2:多页工作簿

问克劳德:

Create quarterly_report.xlsx with 5 sheets:
- Sheets: Q1, Q2, Q3, Q4, Summary
- Each Q sheet has: Month, Revenue, Expenses, Profit
- Add 3 months of data per quarter
- Profit formula: =B2-C2
- Summary sheet with formulas that sum all quarters
- Format all currency values as $#,##0.00

结果: 具有跨表公式和综合业务报告的复杂多表工作簿。

示例3:数据迁移

问克劳德:

Read data from old_data.xlsx sheet 'Sales' range A1:E100,
then create new_data.xlsx with:
- Same data but sorted by date (column A)
- Add a new column F with 10% markup calculation (=E*1.1)
- Format dates as 'mm/dd/yyyy'
- Format currency columns as $#,##0.00
- Add bold headers with blue background

结果: 通过计算和专业格式化增强了干净的数据迁移。

发展

设置

# Clone and install
git clone https://github.com/mort-lab/excel-mcp
cd excel-mcp
uv sync

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=excel_mcp_server

# Lint and format
uv run ruff check
uv run ruff format

项目结构

excel-mcp-server/
├── src/excel_mcp_server/
│   ├── server.py              # FastMCP server (local)
│   ├── server_smithery.py     # Smithery-compatible server
│   ├── models.py              # Pydantic validation models
│   ├── operations/            # Business logic
│   │   ├── workbook.py
│   │   ├── cell.py
│   │   ├── sheet.py
│   │   └── formatting.py
│   └── utils/
│       └── validators.py
├── tests/                     # Test suite (17 tests)
└── pyproject.toml             # Project configuration

演出

  • 快速:高效处理多达10000行的工作簿
  • 记忆:典型操作约50MB
  • 轻量级:不需要安装Excel
操作 时间 备注
创建工作簿 ~50ms 空工作簿
写入100个单元格 ~200ms 单个写入
写入100个单元格(范围) ~50ms 批量操作
从现有文件读取1000个单元格 ~300ms
应用格式 ~100ms 每个范围

局限性

  • ❌ 不支持图表/图形(即将推出)
  • ❌ 无数据透视表(路线图)
  • ❌ 没有VBA宏(有意-纯Python)
  • ⚠️ 文件大小限制:建议100MB

常见问题解答

我可以在谷歌表格中使用这个吗? 否,此服务器仅适用于Excel(.xlsx)文件。

它离线工作吗? 对!在本地安装时,它完全脱机工作。

Excel支持哪些功能?

  • ✅ 公式(SUM、AVERAGE、IF、VLOOKUP、COUNT等)
  • ✅ 格式(字体、颜色、边框、对齐方式、数字格式)
  • ✅ 多个工作表和工作簿
  • ✅ 电池范围和批量操作
  • ✅ 跨工作表的公式引用
  • ❌ 图表(路线图)
  • ❌ 数据透视表(路线图)
  • ❌ 宏/VBA(未计划-安全)

我的Excel文件可以有多大? 建议:高达100MB或~50000行,以获得最佳性能。

我可以在生产中使用这个吗? 对!服务器经过测试,运行稳定。考虑使用Smithery进行部署和扩展。

故障排除

导入错误

uv sync

权限错误

# Check permissions
ls -la /path/to/directory

# Fix permissions (Unix/Mac)
chmod u+w /path/to/directory

文件已存在 创建工作簿时,如果文件已存在,则操作将失败。删除现有文件或使用其他文件名。

贡献

欢迎投稿!方法如下:

开发工作流程:

  1. 分叉并克隆存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 通过测试进行更改
  4. 运行测试: uv run pytest
  5. 运行linting: uv run ruff check
  6. 承诺: git commit -m 'feat: Add amazing feature'
  7. 推送并创建拉取请求

承诺公约: 我们使用 约定式提交:

  • feat: 新功能
  • fix: 错误修复
  • docs: 文档
  • test: 添加测试
  • refactor: 代码重构

路线图

v0.2.0(下一版本)

  • 图表和图形创建
  • 数据验证规则
  • 条件化格式
  • 图像插入

v0.3.0

  • 数据透视表操作
  • 单元格评论和注释
  • 受保护的板材
  • 命名范围

v1.0.0

  • CSV导入/导出
  • PDF导出
  • 模板系统
  • 80%+测试覆盖率

支持

许可证

该项目根据MIT许可证获得许可。

致谢


由以下材料制成❤️ 通过 马丁·伊鲁罗茨基

使AI助手能够一次处理一个单元格的Excel文件。