Excel处理服务器

一个强大的Excel操作服务器,支持Excel文件解析、生成、格式化和Supabase存储集成,无需安装Microsoft Office或WPS。

  • by 1126misakp
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 1126misakp/Excel-MCP-Server-with-Supabase-Storage

使用说明

<<<<<<< 意思是“来自前一个合并提交”(来自之前的合并提交),在中文中通常不直接翻译,而是保留原样用于版本控制语境中

带有Supabase存储的Excel MCP服务器

一个强大的MCP(模型上下文协议)服务器,专为Excel操作设计,与Supabase存储无缝集成。无需安装Microsoft Office或WPS,即可通过编程方式处理Excel文件。

🌟 特点

  • ✅ Excel 解析将Excel文件转换为包含完整格式信息的JSON文件
  • ✅ “Excel Generation”可以翻译为“杰出一代”或“卓越一代”,具体取决于上下文和语境,但通常用来形容在某方面表现卓越、出类拔萃的一群人或一代人从JSON数据创建格式化的Excel文件
  • ✅ 高级格式化修改单元格样式,合并单元格,调整尺寸
  • ✅ 公式支持执行并计算20多个常用的Excel公式
  • ✅ 多表操作将多个Excel文件合并成一个工作簿
  • ✅ Supabase 集成与Supabase存储进行直接的读/写操作
  • ✅ 零依赖无需安装Microsoft Office或WPS
  • ✅ 跨平台可在Windows、Linux和macOS上运行

🚀 快速入门

安装

选项1:从GitHub安装(目前推荐)

# Install and run directly
uvx --from git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage mcp-excel-supabase

选项2:从PyPI安装(即将推出)

# Once published to PyPI, you can use:
uvx mcp-excel-supabase

选项3:从本地源安装

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install in development mode
pip install -e .

# Run the server
mcp-excel-supabase

配置

  1. 创建一个 .env 在您的项目目录中找到文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Supabase凭据:
SUPABASE_URL=https://yourproject.supabase.co
SUPABASE_KEY=your-service-role-key-here

克劳德桌面配置

在您的Claude桌面配置文件中添加:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS(麦金塔操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Linux(发音:/ˈlɪnʊks/): ~/.config/Claude/claude_desktop_config.json

如果从GitHub安装:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage",
        "mcp-excel-supabase"
      ],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

如果从 PyPI 安装(发布后):

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

运输方式

服务器通过环境变量支持三种传输模式:

STDIO 模式(默认)

最适合Claude桌面版和命令行工具:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

HTTP 模式

最适合Cherry Studio和网页客户端:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here",
        "MCP_TRANSPORT": "http",
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8000"
      }
    }
  }
}

SSE模式

对于旧版SSE客户端:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here",
        "MCP_TRANSPORT": "sse",
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8000"
      }
    }
  }
}

环境变量:

  • MCP_TRANSPORT运输方式(stdio | http | sse),默认: stdio
  • MCP_HOST服务器主机地址,默认: 127.0.0.1
  • MCP_PORT服务器端口,默认: 8000

如需详细的传输配置,请参阅 docs/TRANSPORT_MODES.md 翻译为中文是:文档/运输方式.md。

🛠️ 可用工具

此服务器提供12种MCP工具,以全面支持Excel操作:

工具 描述
parse_excel_to_json 将Excel文件解析为JSON格式
create_excel_from_json 从JSON数据生成Excel文件
modify_cell_format 编辑单元格格式(字体、颜色、边框)
merge_cells 合并单元格范围
unmerge_cells 取消合并单元格范围
set_row_heights 调整行高
set_column_widths 调整列宽
manage_storage 从Supabase上传/下载文件
set_formula 在单元格中设置Excel公式
recalculate_formulas 重新计算工作簿中的所有公式
manage_sheets 创建、删除、重命名、复制、移动工作表
merge_excel_files 合并多个Excel文件

见 API 参考文档 以获取详细文档。

📖 使用示例

将Excel解析为JSON

# Parse a local file
result = parse_excel_to_json(
    file_path="data/sales_q1.xlsx",
    extract_formats=True
)

# Access parsed data
workbook = result["workbook"]
sheets = workbook["sheets"]

从JSON创建Excel文件

# Create a simple Excel file
workbook_data = {
    "sheets": [{
        "name": "Sales",
        "rows": [
            {"cells": [
                {"value": "Product", "row": 1, "column": 1},
                {"value": "Revenue", "row": 1, "column": 2}
            ]},
            {"cells": [
                {"value": "Product A", "row": 2, "column": 1},
                {"value": 1000, "row": 2, "column": 2}
            ]}
        ]
    }]
}

create_excel_from_json(
    workbook_data=workbook_data,
    output_path="output/sales.xlsx",
    apply_formats=True
)

设置单元格格式

# Format header row
modify_cell_format(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell_range="A1:J1",
    format_spec={
        "font": {"name": "Arial", "size": 12, "bold": True, "color": "FFFFFF"},
        "fill": {"color": "4472C4"},
        "alignment": {"horizontal": "center", "vertical": "center"}
    }
)

设定公式

# Set a SUM formula
set_formula(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell="D10",
    formula="=SUM(D2:D9)"
)

# Recalculate all formulas
recalculate_formulas(
    file_path="data/sales.xlsx"
)

合并Excel文件

# Merge quarterly reports
merge_excel_files(
    file_paths=["q1.xlsx", "q2.xlsx", "q3.xlsx", "q4.xlsx"],
    output_path="annual_report.xlsx",
    handle_duplicates="rename"  # or "skip" or "overwrite"
)

Supabase 存储操作

# Upload file to Supabase
manage_storage(
    operation="upload",
    local_path="output/report.xlsx",
    remote_path="reports/2024/annual.xlsx"
)

# Download file from Supabase
manage_storage(
    operation="download",
    remote_path="reports/2024/annual.xlsx",
    local_path="downloads/annual.xlsx"
)

# List files
manage_storage(
    operation="list",
    remote_path="reports/2024/"
)

如需更多示例,请参阅 示例目录。

📚 文档

🛠️ 开发

本地设置

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check .

# Format code
black .

项目结构

Excel-MCP-Server-with-Supabase-Storage/
├── src/mcp_excel_supabase/      # Source code
│   ├── excel/                    # Excel operations
│   ├── storage/                  # Supabase integration
│   └── utils/                    # Utilities
├── tests/                        # Test suite
├── docs/                         # Documentation
└── PRD.md                        # Product Requirements

🧪 测试

# Run all tests
pytest

# Run with coverage
pytest --cov

# Run specific test file
pytest tests/test_parser.py

📋 要求

  • Python 3.9+
  • 带有存储API访问权限的Supabase帐户
  • 无需安装Microsoft Office或WPS

🤝 贡献

欢迎投稿!详情请见 开发指南 作为指导方针。

📄 许可证

这个项目采用MIT许可证授权——详见 许可证 文件中详述。

🙋 支持

🗺️ 路线图

版本1.0(当前)

  • ✅ 核心Excel解析与生成
  • ✅ Supabase 存储集成
  • ✅ 支持基本格式化
  • ✅ 20多个常用公式

版本1.1(计划中)

  • 📋 支持图表生成
  • 📋 条件格式化
  • 📋 数据验证规则
  • 📋 高级公式函数
  • 📋 WebUI 控制面板

🌐 相关项目

📊 性能

在标准开发机器(Intel i5处理器,8GB内存)上的基准测试结果:

操作 目标 实际 状态
解析1MB文件 <2秒 0.598秒 ✅ 3.3倍更快
生成1000行 <3秒 0.026秒 ✅ 速度快115倍
合并10个文件 <8秒 0.117秒 ✅ 速度快68倍
批处理20个文件 <10秒 0.192秒 ✅ 速度快52倍
1000个单元格格式 <0.5秒 0.089秒 ✅ 5.6倍更快

性能优化:

  • ✅ 对解析过的文件使用LRU缓存(128条目)
  • ✅ 线程池并发(8个工作线程)
  • ✅ 大文件流式I/O
  • ✅ 内存高效处理(5000行 = +0.04MB)

由充满爱意地制作 1126misakp

这个项目正在积极维护,并欢迎社区贡献。

使用Supabase存储的Excel MCP服务器

一个强大的MCP(模型上下文协议)服务器,专为Excel操作设计,与Supabase存储无缝集成。无需安装Microsoft Office或WPS,即可通过编程方式处理Excel文件。

🌟 特点

  • ✅ Excel 解析将Excel文件转换为包含完整格式信息的JSON文件
  • ✅ 卓越一代从JSON数据创建格式化的Excel文件
  • ✅ 高级格式化修改单元格样式,合并单元格,调整尺寸
  • ✅ 公式支持执行并计算20多个常用的Excel公式
  • ✅ 翻译为中文是:✅(这个符号本身没有直接的中文翻译,它通常表示“正确”、“已确认”或“完成”的意思,在中文语境中可以直接保留这个符号或者根据上下文用相应的中文表述来替代。) 多表操作将多个Excel文件合并成一个工作簿
  • ✅ Supabase 集成使用Supabase Storage进行直接读/写操作
  • ✅ 零依赖无需安装Microsoft Office或WPS
  • ✅ 跨平台适用于Windows、Linux和macOS系统

🚀 快速入门

安装

选项1:从GitHub安装(目前推荐)

# Install and run directly
uvx --from git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage mcp-excel-supabase

选项2:从PyPI安装(即将推出)

# Once published to PyPI, you can use:
uvx mcp-excel-supabase

选项3:从本地源安装

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install in development mode
pip install -e .

# Run the server
mcp-excel-supabase

配置

  1. 创建一个 .env 在你的项目目录中创建文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Supabase凭据:
SUPABASE_URL=https://yourproject.supabase.co
SUPABASE_KEY=your-service-role-key-here

Claude 桌面配置

在您的Claude桌面配置文件中添加:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS(麦金塔操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json Linux(发音为“利尼斯”): ~/.config/Claude/claude_desktop_config.json

如果从GitHub安装:

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage",
        "mcp-excel-supabase"
      ],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

如果从PyPI安装(已发布后):

{
  "mcpServers": {
    "excel-supabase": {
      "command": "uvx",
      "args": ["mcp-excel-supabase"],
      "env": {
        "SUPABASE_URL": "https://yourproject.supabase.co",
        "SUPABASE_KEY": "your-service-role-key-here"
      }
    }
  }
}

🛠️ 可用工具

此服务器提供了12种MCP工具,以实现全面的Excel操作:

工具 描述
parse_excel_to_json 将Excel文件解析为JSON格式
create_excel_from_json 从JSON数据生成Excel文件
modify_cell_format 编辑单元格格式(字体、颜色、边框)
merge_cells 合并单元格范围
unmerge_cells 解除单元格范围合并
set_row_heights 调整行高
set_column_widths 调整列宽
manage_storage 向Supabase上传/下载文件
set_formula 在单元格中设置Excel公式
recalculate_formulas 重新计算工作簿中的所有公式
manage_sheets 创建、删除、重命名、复制、移动工作表
merge_excel_files 合并多个Excel文件

看 API 参考 以获取详细文档。

📖 使用示例

将Excel解析为JSON

# Parse a local file
result = parse_excel_to_json(
    file_path="data/sales_q1.xlsx",
    extract_formats=True
)

# Access parsed data
workbook = result["workbook"]
sheets = workbook["sheets"]

从JSON创建Excel文件

# Create a simple Excel file
workbook_data = {
    "sheets": [{
        "name": "Sales",
        "rows": [
            {"cells": [
                {"value": "Product", "row": 1, "column": 1},
                {"value": "Revenue", "row": 1, "column": 2}
            ]},
            {"cells": [
                {"value": "Product A", "row": 2, "column": 1},
                {"value": 1000, "row": 2, "column": 2}
            ]}
        ]
    }]
}

create_excel_from_json(
    workbook_data=workbook_data,
    output_path="output/sales.xlsx",
    apply_formats=True
)

设置单元格格式

# Format header row
modify_cell_format(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell_range="A1:J1",
    format_spec={
        "font": {"name": "Arial", "size": 12, "bold": True, "color": "FFFFFF"},
        "fill": {"color": "4472C4"},
        "alignment": {"horizontal": "center", "vertical": "center"}
    }
)

设置公式

# Set a SUM formula
set_formula(
    file_path="data/sales.xlsx",
    sheet_name="Sheet1",
    cell="D10",
    formula="=SUM(D2:D9)"
)

# Recalculate all formulas
recalculate_formulas(
    file_path="data/sales.xlsx"
)

合并Excel文件

# Merge quarterly reports
merge_excel_files(
    file_paths=["q1.xlsx", "q2.xlsx", "q3.xlsx", "q4.xlsx"],
    output_path="annual_report.xlsx",
    handle_duplicates="rename"  # or "skip" or "overwrite"
)

Supabase 存储操作

# Upload file to Supabase
manage_storage(
    operation="upload",
    local_path="output/report.xlsx",
    remote_path="reports/2024/annual.xlsx"
)

# Download file from Supabase
manage_storage(
    operation="download",
    remote_path="reports/2024/annual.xlsx",
    local_path="downloads/annual.xlsx"
)

# List files
manage_storage(
    operation="list",
    remote_path="reports/2024/"
)

如需更多示例,请参阅 示例目录。

📚 文档

🛠️ 开发

本地设置

# Clone the repository
git clone https://github.com/1126misakp/Excel-MCP-Server-with-Supabase-Storage
cd Excel-MCP-Server-with-Supabase-Storage

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run linter
ruff check .

# Format code
black .

项目结构

Excel-MCP-Server-with-Supabase-Storage/
├── src/mcp_excel_supabase/      # Source code
│   ├── excel/                    # Excel operations
│   ├── storage/                  # Supabase integration
│   └── utils/                    # Utilities
├── tests/                        # Test suite
├── docs/                         # Documentation
└── PRD.md                        # Product Requirements

🧪 测试

# Run all tests
pytest

# Run with coverage
pytest --cov

# Run specific test file
pytest tests/test_parser.py

📋 要求

  • Python 3.9+(即Python 3.9或更高版本)
  • 带有Storage API访问权限的Supabase账户
  • 无需安装Microsoft Office或WPS

🤝 贡献

欢迎投稿!请参阅 开发指南 作为指导方针。

📄 许可证

此项目遵循MIT许可证授权——详见 许可证 文件中有详细信息。

🙋 支持

🗺️ 路线图

版本1.0(当前版本)

  • ✅ 核心Excel解析与生成
  • ✅ 集成Supabase存储
  • ✅ 基本格式支持
  • ✅ 20多个常用公式

版本1.1(计划中)

  • 📋 支持图表生成
  • 📋 条件格式设置
  • 📋 数据验证规则
  • 📋 高级公式函数
  • 📋 WebUI 控制面板

🌐 相关项目

📊 性能

在标准开发机器(Intel i5处理器,8GB内存)上的基准测试:

操作 目标 实际 状态
解析1MB文件 <2秒 0.598秒 ✅ 3.3倍更快
生成1000行 <3秒 0.026秒 ✅ 速度快115倍
合并10个文件 <8秒 0.117秒 ✅ 快68倍
批量处理20个文件 <10秒 0.192秒 ✅ 速度快52倍
1000个单元格的格式 <0.5秒 0.089秒 ✅ 5.6倍快

性能优化:

  • ✅ 对解析后的文件使用LRU缓存(128条目)
  • ✅ 线程池并发(8个工作线程)
  • ✅ 大文件流式I/O
  • ✅ 内存高效处理(5000行 = +0.04MB)

由…用心打造 ❤️ 1126misakp

这个项目正在积极维护中,并欢迎社区成员的贡献。

6dc69b6(发布版本v1.0.0:基于Supabase存储的完整Excel MCP服务器)