使用说明
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服务器
- 全局安装:
npm install -g @archimdescrypto/excel-reader
- 添加到MCP设置文件(通常在
~/.config/claude/settings.json或同等):
{
"mcpServers": {
"excel-reader": {
"command": "excel-reader",
"env": {}
}
}
}
为了发展
- 克隆存储库:
git clone https://github.com/ArchimdesCrypto/mcp-excel-reader.git
cd mcp-excel-reader
- 安装依赖项:
npm install
- 构建项目:
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将使用该工具读取文件,自动处理大文件的分块。
特性
-
自动分块
- 自动将大文件拆分为可管理的块
- 默认块大小为100KB
- 提供分页元数据
-
图纸选择
- 按名称阅读特定表格
- 如果未指定,则默认为第一页
-
行分页
- 使用startRow和maxRows控制要读取的行
- 获取下一个块信息以进行连续读取
-
错误处理
- 验证文件是否存在和格式
- 提供清晰的错误消息
- 优雅地处理格式错误的Excel文件
使用SheetJS功能进行扩展
Excel Reader基于SheetJS构建,可以通过其强大的功能进行扩展:
可用扩展
-
配方处理
// Enable formula parsing const wb = XLSX.read(data, { cellFormula: true, cellNF: true }); -
单元格格式
// Access cell styles and formatting const styles = Object.keys(worksheet) .filter(key => key[0] !== '!') .map(key => ({ cell: key, style: worksheet[key].s })); -
数据验证
// Access data validation rules const validation = worksheet['!dataValidation']; -
图纸特征
- 合并单元格:
worksheet['!merges'] - 隐藏行/列:
worksheet['!rows'],worksheet['!cols'] - 板材保护:
worksheet['!protect']
- 合并单元格:
有关更多功能和详细文档,请访问 SheetJS文档.
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。