Excel读取工具

一个用于读取Excel文件的MCP服务器,支持自动分块和分页功能,适用于处理大型Excel文件。

  • by ArchimedesCrypto
  • TypeScript
  • 本地部署
  • 29 星标
  • 更新于
在 GitHub 查看 ArchimedesCrypto/excel-reader-mcp

使用说明

MCP Excel阅读器

一种模型上下文协议(MCP)服务器,用于读取具有自动分块和分页支持的Excel文件。该工具使用SheetJS和TypeScript构建,通过自动将大型Excel文件分解为可管理的块,帮助您高效处理大型Excel文件。

特性

  • 📊 读取具有自动大小限制的Excel文件(.xlsx、.xls)
  • 🔄 大型数据集的自动分块
  • 📑 纸张选择和行分页
  • 📅 正确处理日期
  • ⚡ 针对大文件进行了优化
  • 🛡️ 错误处理和验证

安装

通过Smithery安装

通过以下方式自动安装Excel Reader for Claude Desktop 史密瑟里:

npx -y @smithery/cli install @ArchimedesCrypto/excel-reader-mcp-chunked --client claude

作为MCP服务器

  1. 全局安装:
npm install -g @archimdescrypto/excel-reader
  1. 添加到MCP设置文件(通常在 ~/.config/claude/settings.json 或同等):
{
  "mcpServers": {
    "excel-reader": {
      "command": "excel-reader",
      "env": {}
    }
  }
}

为了发展

  1. 克隆存储库:
git clone https://github.com/ArchimdesCrypto/mcp-excel-reader.git
cd mcp-excel-reader
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

用法

用法

Excel阅读器提供了一个单一的工具 read_excel 具有以下参数:

interface ReadExcelArgs {
  filePath: string;      // Path to Excel file
  sheetName?: string;    // Optional sheet name (defaults to first sheet)
  startRow?: number;     // Optional starting row for pagination
  maxRows?: number;      // Optional maximum rows to read
}

// Response format
interface ExcelResponse {
  fileName: string;
  totalSheets: number;
  currentSheet: {
    name: string;
    totalRows: number;
    totalColumns: number;
    chunk: {
      rowStart: number;
      rowEnd: number;
      columns: string[];
      data: Record<string, any>[];
    };
    hasMore: boolean;
    nextChunk?: {
      rowStart: number;
      columns: string[];
    };
  };
}

基本用法

当与Claude或其他兼容MCP的AI一起使用时:

Read the Excel file at path/to/file.xlsx

AI将使用该工具读取文件,自动处理大文件的分块。

特性

  1. 自动分块

    • 自动将大文件拆分为可管理的块
    • 默认块大小为100KB
    • 提供分页元数据
  2. 图纸选择

    • 按名称阅读特定表格
    • 如果未指定,则默认为第一页
  3. 行分页

    • 使用startRow和maxRows控制要读取的行
    • 获取下一个块信息以进行连续读取
  4. 错误处理

    • 验证文件是否存在和格式
    • 提供清晰的错误消息
    • 优雅地处理格式错误的Excel文件

使用SheetJS功能进行扩展

Excel Reader基于SheetJS构建,可以通过其强大的功能进行扩展:

可用扩展

  1. 配方处理

    // Enable formula parsing
    const wb = XLSX.read(data, {
      cellFormula: true,
      cellNF: true
    });
    
  2. 单元格格式

    // Access cell styles and formatting
    const styles = Object.keys(worksheet)
      .filter(key => key[0] !== '!')
      .map(key => ({
        cell: key,
        style: worksheet[key].s
      }));
    
  3. 数据验证

    // Access data validation rules
    const validation = worksheet['!dataValidation'];
    
  4. 图纸特征

    • 合并单元格: worksheet['!merges']
    • 隐藏行/列: worksheet['!rows'], worksheet['!cols']
    • 板材保护: worksheet['!protect']

有关更多功能和详细文档,请访问 SheetJS文档.

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢