跳转到内容

表格识别

表格识别,简单说,就是把图片、扫描件、截图、PDF 里的表格,先拆成系统能继续使用的 表头单元格数据

很多企业材料里,真正重要的信息不是一大段正文,而是藏在表格里。
比如数量、金额、规格、检测值、时间、项目结果、汇总数据,往往都在表格里一格一格排着。

人眼看表格很快,但系统如果只拿到一张图片,通常只知道“这里有一堆字”,却不知道:

  • 哪些字属于同一行
  • 哪些字属于同一列
  • 哪一列是项目名
  • 哪一列是数值
  • 哪一行是汇总
  • 哪一格是空值,哪一格是真的缺失

表格识别真正解决的,就是把“看起来像表”的东西,变成“结构清楚、能计算、能比对、能入库的数据表”。

它和 OCR文字识别 很像,但重点不一样。
OCR文字识别 更关心“字是什么”;表格识别 更关心“这些字分别落在哪一行、哪一列、哪一个字段下面”。

这项能力接进来的,通常是带有表格结构的文件或图片。

常见输入包括:

  • Excel 截图
  • 表单拍照
  • 纸质表格扫描件
  • 多页 PDF 里的统计表
  • 系统导出的报表截图
  • 邮件附件里的对账表、盘点表、检测表、登记表

一起带进来的上下文,常见有这些:

  • 文档类型
  • 上传时间
  • 业务编号
  • 表格所属对象
  • 企业定义的重点字段
  • 单位信息
  • 币种、数量口径、日期口径

上下文很重要。因为很多表格不是只要“拆出来”就够了,还要知道:

  • 这一列的单位是什么
  • 这一页和上一页是不是同一张表
  • 同名字段是不是同一个意思
  • 汇总行要不要单独标记

表格识别最后交出去的,应该是一张结构化的数据表,而不是一张“认过字的图片”。

常见输出包括:

输出项说明
表格边界这一页里哪些区域是真正的表格
表头结果每一列分别代表什么
行列结构哪些内容属于同一行、同一列
单元格文本每个单元格里到底是什么
合并关系哪些表头或单元格是合并出来的
空值标记是本来就空,还是识别失败
可信度当前整张表或某些单元格的稳定程度
异常提示哪些行列关系可疑、哪些数据建议人工复核

如果后面还要做统计、对账、回写、报表分析,这些输出都很关键。

表格识别真正难的地方,不只是把字认出来,而是把“结构”也认对。
它在内部通常会经过下面这条链。

有些文件是纯正文,有些是一页里既有正文又有表格。
所以系统第一步通常会先判断:这一页里哪里是表格区域,哪里不是。

如果表格有清楚的线框,系统会先找横线、竖线和外框。
如果没有完整线框,就要根据文字排布和对齐关系,推断出行列边界。

这一层很关键,因为表格识别一旦把行列切错,后面字段关系就会全乱。

不是所有行都一样重要。
系统通常会先区分:

  • 哪些是表头
  • 哪些是明细行
  • 哪些是备注
  • 哪些是合计或汇总行

只有先把这些角色分清,后面的字段才不会挂错位置。

这一步会把每个格子里的文字提出来,并且尽量保持它原来的位置关系。

真正要拿出去用的时候,系统不只是知道“这里有字”,而是知道:

  • 这一格在第几行第几列
  • 它对应哪个表头
  • 它是不是跨行跨列

表格里的内容往往看起来整齐,但拿来直接算时,常常并不干净。
比如:

  • 数字带千分位
  • 百分比写法不统一
  • 单位分散写在表头或备注里
  • 日期格式混用
  • 空白格和缺失值混在一起

所以系统通常会再做一次清洗和标准化。

6. 最后判断这张表能不能直接交出去

Section titled “6. 最后判断这张表能不能直接交出去”

如果表头识别不清、行列错位、合并关系不稳、关键数值可信度低,这张表就不适合直接下发。
这时系统会把可疑位置圈出来,交给人工确认。

flowchart TB
    A[输入表格图片 / 扫描件 / PDF / 截图] --> B[检测页面中的表格区域]
    B --> C{是否找到有效表格?}
    C -->|否| D[标记为非标准表格或异常文件]
    C -->|是| E[识别表格边界与行列线]
    E --> F[推断行列结构<br/>处理无线框、弱线框、错位情况]
    F --> G[识别表头、明细区、汇总区、备注区]
    G --> H[提取每个单元格内容]
    H --> I[处理合并单元格与跨行跨列关系]
    I --> J[字段清洗与格式统一]
    J --> K[检查表头完整性、行列对齐和关键值可信度]
    K --> L{结构是否清楚且关键字段可用?}
    L -->|否| M[标记可疑单元格并转人工复核]
    L -->|是| N[输出结构化表格结果]
    M --> O[人工修正后回流]
    N --> P[交给对账、统计、归档、回写等下游流程]
    O --> P

表格识别对业务真正有价值,是因为它能把一张“看起来像表”的图片,交成一张“机器可继续处理的表”。

常见会交出去这些结果:

  • 标准化后的表头
  • 每一行明细数据
  • 汇总行或合计行标记
  • 单元格原始位置
  • 单位和格式信息
  • 可疑单元格列表
  • 整张表的可信度说明

有了这些结果,下游才能继续做:

  • 盘点统计
  • 数据对账
  • 质量记录整理
  • 金额汇总
  • 报表分析
  • 系统回写

表格识别最怕的,不是识别不出来,而是识别出来以后还是没人接着用。

真正常见、也最有价值的接法,一般有下面几种:

1. 接在资料上传和收集入口后面

Section titled “1. 接在资料上传和收集入口后面”

只要有人上传表单、截图、扫描件,系统就先把表格结构拆出来。
这样后面的系统拿到的就不是图片附件,而是已经能按行列处理的数据。

很多团队每天要把多张表拼成一张总表。
如果前面没有表格识别,这一步往往只能靠人工复制粘贴。

后面如果要比数量、比金额、比批次、比检测值,前面必须先拿到结构化表格。
表格识别就是这一步的入口。

原来一张扫描表只能“存起来”,现在可以按字段查、按列筛、按条件找。
这会让老资料真正变得可用。

表格识别虽然很强,但下面这些情况最好让人工复核:

  • 表格拍得太斜,行列明显变形
  • 同一页里有多个表,而且边界贴得很近
  • 表头是多层结构,跨行跨列很多
  • 表格没有线框,只能靠文字对齐去猜
  • 图片模糊,数字和单位不清楚
  • 合计行、备注行和明细行混在一起
  • 有些格子里是印章、手写字、符号混排
  • 识别出来的行列关系和业务规则明显冲突

真正稳的企业做法,不是要求系统每一张表都全自动,而是让系统先处理大部分标准表,把结构复杂、风险高的部分交给人确认。

表格识别之所以在企业里很有价值,是因为大量关键数据本来就住在表格里。

1. 它解决的不是“认字”,而是“认结构”

Section titled “1. 它解决的不是“认字”,而是“认结构””

很多时候字都认出来了,但只要行列关系错了,整张表就不能用。
表格识别补的,正是这层结构能力。

2. 它特别适合重复量大、格式相近的表

Section titled “2. 它特别适合重复量大、格式相近的表”

只要企业里长期处理同类表单、报表、登记表、对账表,这项能力的价值就会越来越明显。
因为人工最容易把时间花在重复搬表上。

3. 它能直接带动后面的统计和比对自动化

Section titled “3. 它能直接带动后面的统计和比对自动化”

没有结构化表格,很多分析和核对都只是空谈。
表格识别一旦打通,后面的对账、统计、报表生成才真正有基础。

4. 它边界明确,容易设计人工兜底

Section titled “4. 它边界明确,容易设计人工兜底”

标准表格让系统先处理,复杂表格让人补一刀。
这种接法在企业里最稳,也最容易真正落地。