手写表格识别助手
简介
智能识别手写表格图片,秒级提取结构化数据,支持批量处理和一键导出Excel。
核心功能:AI多模态识别 + 批量并发处理 + Excel导出 + 置信度评估 + 计算式拆分
适用场景:办公数字化(考勤表、签到表)、业务录入(订单、销售记录)、财务归档(报销单、凭证)、数据汇总(多表合并分析)
任务目标
- 本 Skill 用于:识别手写表格图片,提取结构化数据并导出为Excel
- 能力包含:图像识别、JSON结构化转换、批量并发处理、Excel导出、置信度评估
- 触发条件:用户上传手写表格图片、需要数据数字化、批量处理表格
前置准备
```
openpyxl==3.1.2
```
操作步骤
单张图片识别
- 接收图片和提示词
- 图像识别与提取
- 智能体使用图像识别能力读取图片内容
- 根据提示词要求提取表格数据
- 转换为标准JSON格式
- 如遇到模糊内容,自动标注[不清晰]
- 数据验证
- 导出Excel
- 调用脚本:
python scripts/json_to_excel.py --input --output - 生成.xlsx文件供用户下载
批量并发识别
- 接收多张图片
- 并发识别处理
- 智能体并行调用图像识别能力
- 同时处理所有图片,提升处理效率
- 实时显示处理进度(已完成X/Y张)
- 每张图片独立识别,生成独立JSON结果
- 结果整合
- 验证所有识别结果的格式正确性
- 选项A:分别导出多个Excel文件
- 选项B:批量导出为多工作表Excel(每个图片一个工作表)
- 选项C:合并导出为单工作表Excel(智能匹配列名,添加图片来源列)
- 批量导出模式
模式A:批量模式(默认)
- 调用脚本:
python scripts/json_to_excel.py --input --output - 批量JSON格式自动识别,无需额外参数
- 每个图片数据导出为独立工作表
- 适合需要区分不同来源的场景
模式B:合并模式
- 调用脚本:
python scripts/json_to_excel.py --input --output --merge - 所有图片数据合并到同一工作表
- 智能匹配列名(相似度≥60%自动归为同一列)
- 自动添加"图片来源"列,清晰标注数据来源
- 添加统计信息(总行数、图片数量、各图片数据量)
- 适合同类数据的批量汇总
数据处理原则:
- 保留原始识别数据,不做数值计算
- 所有单元格内容按识别原样输出
- 数值、日期、文本均保持原始格式
- 计算式列拆分:如果表格包含"计算式与结果"类混合列,自动拆分为"计算式"和"结果"两列,方便复制结果数据
识别提示词模板
通用识别提示词(默认)
请识别这张手写表格图片中的所有数据。要求:
1. 准确识别表格结构(行、列)
2. 提取每个单元格中的文字内容
3. 保留表格的行列对应关系
4. 如果文字模糊或难以辨认,标注[不清晰]
5. 计算式与结果拆分为两列(如果有混合列)
6. 输出为标准JSON格式,包含置信度和问题标注
自定义提示词示例
用户可根据实际需求调整提示词,例如:
- 指定特定字段名称
- 要求识别特定格式的数据(日期、金额等)
- 设置数据验证规则
- 添加字段映射关系
- 计算式拆分:要求将"计算式=结果"拆分为两列
JSON格式规范
识别结果必须符合标准JSON格式,详见 references/json_format.md
核心结构:
{
"table_data": [
{
"row_number": 1,
"columns": {
"列名1": "值1",
"列名2": "值2"
}
}
],
"metadata": {
"source_image": "文件名.jpg",
"recognition_time": "2024-01-01T12:00:00",
"total_rows": 10
}
}
资源索引
注意事项
- 智能体负责图像识别和结构化提取,无需调用外部OCR服务
- 优先使用提示词模板:从 references/prompt_templates.md 选择场景化模板,提升识别准确率
- 批量处理时建议控制并发数量(建议≤10张),避免资源占用过高
- 识别结果应先验证格式,再调用脚本导出Excel
- 手写字迹模糊时,智能体会标注不确定内容
- 默认模式:批量JSON格式自动使用批量模式(每个图片一个工作表),无需指定参数
- 数据处理原则:保留原始识别数据,不做数值计算,所有内容按原样输出
- 合并模式智能匹配规则:
- 列名相似度≥60%自动归为同一列(如"客户名"/"客户姓名"/"客户")
- 相似度计算基于字符重叠度和包含关系
- 无法匹配的列名保留原始名称
- 合并结果包含"图片来源"列,清晰标注数据来源
- 底部显示统计信息(总行数、图片数量、各来源数据量)
使用示例
示例1:单张图片识别
- 用户上传:1张手写考勤表图片
- 提示词:识别考勤表中的姓名、日期、出勤状态
- 智能体:识别图片,生成JSON数据
- 脚本:导出为考勤数据.xlsx
示例2:批量并发识别(多工作表模式)
- 用户上传:5张手写销售记录图片
- 提示词:统一识别产品名称、数量、单价、金额
- 智能体:并发识别5张图片,生成5个JSON结果
- 脚本:批量导出为销售总表.xlsx(5个工作表)
示例3:批量并发识别(合并模式)
- 用户上传:10张手写订单图片(格式相近)
- 提示词:识别订单号、客户名、商品、数量、金额
- 智能体:并发识别10张图片,生成批量JSON数据
- 脚本:合并导出为订单总表.xlsx(单个工作表,包含图片来源列)
- 效果:所有订单数据合并,智能匹配列名(如"客户名"/"客户姓名"/"客户"归为同一列)
示例4:自定义格式识别
- 用户上传:手写财务报表图片
- 提示词:识别科目名称、借方金额、贷方金额,金额保留两位小数
- 智能体:按提示词要求提取和格式化数据
- 脚本:导出为财务报表.xlsx