# Table Structure Recognition

> 用于表头行列识别的表格结构识别原子 skill，适用于通用行业文档解析场景。

- Skill: `aifinlab/table-structure-recognition` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aifinlab/table-structure-recognition`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aifinlab/table-structure-recognition/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aifinlab (https://skillmd.com/u/aifinlab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aifinlab/table-structure-recognition

---


# 表格结构识别 Skill

## 数据来源

本 Skill 支持多种表格输入格式，核心数据来源包括：

### 1. 表格文件类型
- **PDF文档**：PDF中的表格
- **Word文档**：Word文档中的表格
- **Excel文档**：Excel工作表
- **图片格式**：扫描表格图片、截图表格

### 2. 表格类型
- **标准表格**：规则的行列结构表格
- **复杂表格**：合并单元格、多级表头表格
- **不规则表格**：非标准格式表格
- **嵌套表格**：表格中包含子表格

### 3. 表格特征
- **表格大小**：小表格（<10行）、大表格（>1000行）
- **表格复杂度**：简单表格、复杂格式表格
- **表格语言**：中文表格、英文表格、多语言表格
- **表格质量**：清晰度、分辨率、格式规范度

### 4. 数据格式要求
- **文件路径**：本地文件路径或网络文件URL
- **文件编码**：UTF-8、GBK、GB2312等
- **文件权限**：需要读取权限

> 说明：本 Skill 不包含表格采集功能，需要用户提供表格文件。建议表格格式规范，以便进行准确的结构识别。

---

## 功能

本 Skill 提供全面的表格结构识别能力，涵盖多种识别功能：

### 1. 表格检测
- **表格定位**：检测文档中的表格位置
- **表格边界识别**：识别表格的边界和范围
- **表格数量统计**：统计文档中的表格数量
- **表格类型判断**：判断表格的类型和复杂度

### 2. 表头识别
- **表头行识别**：识别表头行和表头层级
- **表头单元格识别**：识别表头单元格和合并情况
- **多级表头识别**：识别多级表头结构
- **表头文本提取**：提取表头文本和标签

### 3. 行列结构识别
- **行识别**：识别表格的行数和行结构
- **列识别**：识别表格的列数和列结构
- **单元格识别**：识别单元格的位置和边界
- **合并单元格识别**：识别合并单元格的范围

### 4. 数据区域识别
- **数据行识别**：识别数据行和表头行的分界
- **数据列识别**：识别数据列的范围
- **数据区域提取**：提取数据区域的内容
- **空行空列处理**：识别和处理空行空列

### 5. 表格内容提取
- **单元格内容提取**：提取单元格的文本内容
- **表格数据提取**：提取表格的结构化数据
- **格式信息提取**：提取单元格的格式信息
- **公式识别**：识别单元格中的公式

### 6. 高级处理功能
- **表格结构重建**：重建表格的完整结构
- **表格验证**：验证表格结构的完整性
- **表格标准化**：标准化表格格式
- **表格描述生成**：生成表格结构的文字描述

---

## 使用示例

### 输出示例
```json
{
  "table_info": {
    "table_id": 1,
    "position": {
      "page": 5,
      "bbox": [100, 200, 500, 600]
    },
    "source_file": "document.pdf"
  },
  "structure": {
    "row_count": 10,
    "column_count": 5,
    "header_rows": 2,
    "data_rows": 8,
    "has_merged_cells": true
  },
  "headers": {
    "level_1": [
      {
        "cell_range": "A1:E1",
        "text": "2024年财务数据",
        "merged": true,
        "colspan": 5
      }
    ],
    "level_2": [
      {
        "cell_range": "A2",
        "text": "项目",
        "merged": false
      },
      {
        "cell_range": "B2",
        "text": "Q1",
        "merged": false
      },
      {
        "cell_range": "C2",
        "text": "Q2",
        "merged": false
      },
      {
        "cell_range": "D2",
        "text": "Q3",
        "merged": false
      },
      {
        "cell_range": "E2",
        "text": "Q4",
        "merged": false
      }
    ]
  },
  "merged_cells": [
    {
      "range": "A1:E1",
      "rowspan": 1,
      "colspan": 5,
      "text": "2024年财务数据"
    }
  ],
  "data": [
    {
      "row": 3,
      "cells": [
        {"col": 1, "text": "营业收入", "rowspan": 1, "colspan": 1},
        {"col": 2, "text": "1000", "rowspan": 1, "colspan": 1},
        {"col": 3, "text": "1100", "rowspan": 1, "colspan": 1},
        {"col": 4, "text": "1200", "rowspan": 1, "colspan": 1},
        {"col": 5, "text": "1300", "rowspan": 1, "colspan": 1}
      ]
    }
  ],
  "extracted_table": {
    "format": "csv",
    "data": [
      ["项目", "Q1", "Q2", "Q3", "Q4"],
      ["营业收入", "1000", "1100", "1200", "1300"],
      ["营业成本", "600", "650", "700", "750"]
    ]
  }
}
```

---

## 注意事项与限制

### 1. 表格格式要求
- 标准格式表格识别准确率较高
- 复杂格式表格可能影响识别
- 扫描表格需要OCR功能支持

### 2. 识别准确性
- 清晰表格识别准确率较高
- 模糊或低分辨率表格可能有限
- 手绘表格识别准确率较低

### 3. 合并单元格处理
- 简单合并单元格处理较好
- 复杂合并情况可能需要特殊处理
- 跨页表格合并可能有限

### 4. 表格复杂度
- 简单表格识别准确率较高
- 复杂表格可能需要人工复核
- 超大表格可能需要分段处理

### 5. 使用限制
- 本 Skill 不包含表格编辑功能
- 识别结果需要人工复核
- 非标准表格可能需要人工处理

---

## 参考资料
- 见 references/ 目录中的相关文档，包括：
  - 表格结构识别方法手册
  - OCR识别算法说明
  - 表格结构分析指南
  - 性能优化指南

