Skip to main content
Glama
excel_parsing_feature.md4.36 kB
# Excel 解析功能实现说明 ## 📋 功能概述 本次更新为 docxtpl-mcp 项目添加了完整的 Excel 文档解析功能,支持 XLSX 和 XLS 格式的 Excel 文件解析。 ## ✨ 新增功能 ### 1. parse_excel_document 工具 完整的 Excel 文档解析工具,提取结构化数据: **功能特性:** - ✅ 支持 .xlsx 和 .xls 格式 - ✅ 解析所有工作表或指定工作表 - ✅ 提取单元格数据(包括日期格式自动转换) - ✅ 提取公式信息 - ✅ 识别合并单元格 - ✅ 提取工作簿元数据 **使用示例:** ```json { "file_path": "/path/to/file.xlsx", "sheet_name": "销售数据", // 可选,不指定则解析所有工作表 "include_formulas": true // 可选,默认 true } ``` ### 2. 扩展现有工具 #### extract_text_from_document - 新增 Excel 支持 (.xlsx, .xls) - 快速提取所有工作表的文本数据 - 使用 Tab 分隔的格式展示 #### get_document_metadata - 新增 Excel 元数据提取 - 包括工作表信息、作者、创建时间等 - 统计单元格总数 ## 🔧 技术实现 ### 依赖库 添加了 `openpyxl>=3.0.0` 库,用于读取和解析 Excel 文件。 ### 核心实现 1. **文件验证** - 文件存在性检查 - 格式验证 (.xlsx, .xls) - 文件大小限制检查 2. **数据提取** - 使用 `load_workbook()` 加载工作簿 - 遍历工作表提取单元格数据 - 日期和时间自动转换为 ISO 格式 - 公式提取(需要重新打开文件获取公式字符串) 3. **元数据处理** - 工作簿属性(创建者、标题、主题等) - 工作表统计信息 - 单元格和公式计数 ### 输出格式 解析结果采用 JSON 格式: ```json { "metadata": { "filename": "example.xlsx", "file_size_mb": 0.5, "sheets_count": 3, "sheet_names": ["Sheet1", "Sheet2", "Sheet3"], "creator": "用户名", "created": "2025-01-01T00:00:00", "modified": "2025-01-15T12:30:00" }, "sheets": [ { "name": "Sheet1", "rows": 100, "columns": 10, "data": [ ["Header1", "Header2", "Header3"], ["Value1", 123, "2025-01-01"], ... ], "merged_cells": ["A1:B1"], "formulas": { "D2": "=SUM(A2:C2)" } } ], "total_sheets_parsed": 1 } ``` ## 📝 更新的文件 ### 核心文件 - ✅ [src/server.py](../src/server.py) - 添加 Excel 解析逻辑 - ✅ [requirements.txt](../requirements.txt) - 添加 openpyxl 依赖 ### 文档文件 - ✅ [README.md](../README.md) - 更新功能说明和示例 ### 测试文件 - ✅ [test_excel_parsing.py](../test_excel_parsing.py) - 完整的测试脚本 - ✅ [demo_excel_parsing.py](../demo_excel_parsing.py) - 演示脚本 ### 配置文件 - ✅ [package.json](../package.json) - 更新描述和关键词 ## 🧪 测试 运行测试脚本: ```bash # 完整测试 python test_excel_parsing.py # 快速演示 python demo_excel_parsing.py ``` 测试覆盖: - ✅ 创建测试 Excel 文件 - ✅ 解析所有工作表 - ✅ 解析指定工作表 - ✅ 快速文本提取 - ✅ 元数据提取 ## 🎯 使用场景 1. **数据分析** - 提取 Excel 中的表格数据进行分析 - 转换 Excel 数据为 JSON 格式 2. **文档处理** - 批量读取 Excel 文件 - 提取特定工作表的数据 3. **自动化工作流** - Excel 数据导入到其他系统 - 报表数据提取和处理 4. **AI 辅助分析** - Claude 分析 Excel 数据 - 基于 Excel 数据生成报告 ## 🚀 后续优化方向 1. **性能优化** - 大文件分块读取 - 并行处理多个工作表 2. **功能增强** - 图表信息提取 - 样式和格式信息 - 条件格式规则提取 3. **错误处理** - 更详细的错误信息 - 损坏文件的容错处理 ## 📚 相关资源 - [openpyxl 文档](https://openpyxl.readthedocs.io/) - [Excel 文件格式规范](https://docs.microsoft.com/en-us/openspecs/office_standards/) - [MCP 协议文档](https://modelcontextprotocol.io/) ## ✅ 完成状态 - [x] 添加 Python 依赖 - [x] 实现 parse_excel_document 工具 - [x] 扩展 extract_text_from_document 支持 Excel - [x] 扩展 get_document_metadata 支持 Excel - [x] 更新文档 - [x] 创建测试脚本 - [x] 代码语法验证 --- **实现日期:** 2025-09-30 **版本:** 0.4.0 (待发布)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/z1w2r3/doc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server