供应商发票格式各不相同——
其实可以不在乎这件事
20家供应商,20种发票格式。有的开增值税专用发票,有的开普通发票;有的是电子发票PDF,有的是纸质发票扫描件,还有人直接拍了张照片发到财务群。上个季度有三家供应商换了开票系统,版式变了,发票号的位置移了,明细表的表头也不一样了。你只想要一份结构统一的Excel,列名就是你台账里已有的那些:供应商名称、发票号、采购订单号、税前金额、税额、到期日。技术上这完全可以实现。问题在于哪一部分大多数工具真正解决了,哪一部分还是留给你手动处理的。
人人都说的那个问题:各家发票版式不一样
模板式OCR工具通过映射文档区域来提取字段:你为每家供应商配置一次——"发票号在右上角,距离边缘2厘米;合计在右下角的表格单元格"。工具每次从这些位置提取数据。对于一家版式稳定的供应商,这完全能用。对于20家供应商,你需要20套模板——而只要任何一家供应商换了开票软件(这事经常发生),你的模板就失效,需要有人重新建一遍。
AI提取消除了对模板的依赖。AI读的不是位置,而是语义。它理解"发票号码""Invoice No.""单据编号"都是同一个字段,无论它们出现在页面的什么位置。一个混合批次——20家供应商、20种版式、部分数字PDF、部分扫描件——可以跑同一个任务。无需模板配置,无需按供应商设置,版式变更不会导致任何提取失败。
模板工具每家供应商一套配置,任何一家改了格式就失效。AI提取读语义而非位置——任意版式都能处理,供应商格式变更不影响任何东西。
版式差异问题已经被现代AI提取工具很好地解决了。但大多数描述在这里就停下来了。实践中还有第二个问题,在你真正开始批量处理之前不容易察觉。
没人提到的那个问题:输出的列名也是错的
即使AI工具正确读取了你所有的发票格式,它输出的字段结构也是它自己决定的,而不是你工作流需要的那套。
大多数AI发票提取工具有一套预设输出字段:供应商名称、开票日期、发票号、采购订单号、合计金额、货币。这是工具对财务团队通用需求的最佳猜测。对很多工作流来说,接近了。但"接近"意味着你还是要重新映射:你的台账用"供应商"不是"供应商名称";你的审批流程需要税前金额和税额分开,而不是一个合计金额;付款期限根本不在预设字段列表里。
结果流程变成了:上传发票→AI正确读取所有格式→下载输出→手动重新映射列名以匹配你的表格→粘贴到实际的台账里。AI解决了难的识别问题,最后还是有一个手工步骤——只是变成了另一种手工步骤。
版式差异是大家都在谈的问题。输出字段不匹配才是让大多数团队每次都要手动重新映射一遍的真正原因——往往做了好几个月才意识到这一步可以省掉。
同时解决这两个问题,需要一个让你来定义输出字段的工具,而不是工具来决定。你输入的列名就成为输出文件的表头,AI把每张发票上找到的值匹配到你的字段,而不是预设列表。
"你来定义列名"在实际中是什么样的
在简录AI里,流程是:上传发票,输入你要的列名,下载输出。
没有模板配置,没有区域框选,没有字段到预设列表的映射。你用中文直接输入列标题——"供应商名称""发票号码""采购订单号""税前金额""增值税额""到期日""付款账期"——这些就成为Excel文件里精确的列标题。AI读取每张发票,识别这些字段在哪里,无论版式如何、语言是什么、文件怎么标注,然后填入对应行。如果某张发票上没有某个字段,对应单元格为空——不是错误,不是提取失败,不需要单独处理。
来自20家供应商、40张发票的批次——部分数字PDF、部分手机拍摄的纸质发票、中英文混合——跑一个任务即可。输出是一份文件,一张表,每行一张发票,你的列名作为表头。处理速度大约5到10秒每页。
四步工作流
上传整批发票
把所有发票放在一起——PDF、图片、扫描件——不论供应商或格式。混合批次直接处理。
输入你的列名
输入你需要的字段:供应商名称、发票号、采购订单号、税前金额、增值税额、付款账期、到期日。这些成为你的输出表头。
AI在每张发票中匹配字段
AI语义读取每份文件,将值映射到你的列名——无论字段在哪个位置、用什么语言、如何标注。
下载一份Excel文件
每行一张发票,你的列名,可直接粘贴到台账或导入财务软件。
实际会遇到的格式差异
实际范围比大多数团队预期的更宽,以下是每种变体对提取的实际影响:
数字PDF vs 扫描件
由开票系统(税务UKey、航信、百旺等)生成的数字PDF有嵌入文字,精度最高,印刷表格数据通常可达99%。扫描件取决于扫描质量:平整清晰的扫描件表现相当。严重倾斜或有阴影的手机拍摄照片精度下降。工具都能处理,但扫描件的精度下限取决于图像质量——建议对经常发送纸质发票的供应商,第一批次手动抽查一遍。
增值税专票 vs 普通发票
增值税专用发票有固定的税务监管版式(发票代码+号码、纳税人识别号、税率、价税分离),AI能识别这些结构化字段。普通发票版式更自由,但只要你的列名描述清晰,同样能正确提取。两种类型可以放在同一批次里一起处理。
手写内容
部分发票有手写数量、手写确认签名或勾选框。同一文件中印刷文字的提取精度不受影响。手写内容可靠性较低,取决于字迹清晰程度。如果供应商定期发送含手写金额的发票,第一批次需人工核查。
四种方式横向对比
| 方式 | 处理格式差异 | 输出字段 | 局限性 |
|---|---|---|---|
| 手工复制粘贴 | 任意格式 | 你的精确列名 | 月均超过20张发票就不可持续;出错率高 |
| 模板式OCR | 每家供应商一个模板 | 你的精确列名 | 供应商改版式就失效;供应商数量越多维护成本越高 |
| 预设字段AI工具 | 任意格式 | 工具预设的列名 | 还是需要手动重新映射列名才能匹配你的台账 |
| 自定义列AI提取 | 任意格式 | 你的精确列名 | 手写内容精度取决于图像质量;极复杂的嵌套明细行需额外处理 |
常见问题
供应商A和供应商B用不同名称标注同一个字段,AI怎么处理?
AI读语义而非字面文字。"含税合计""价税合计""合计金额"在你的列名是"含税合计"的情况下,都会被正确填入这一列。你不需要告诉AI每家供应商用什么词——它自己理解。
一张发票上有某个字段不存在怎么办?
对应单元格为空,不是错误。比如部分发票没有采购订单号——该列空白,其他列正常填充。你可以在后续核查时单独处理这些空格。
中英文混合的发票批次可以吗?
可以。同一批次里中文发票、英文发票可以混放,AI分别读取,统一输出到你定义的列结构里。日期会统一归一为相同格式,金额去掉货币符号只保留数字。
已经设定好的列名下个月还能用吗?
可以。列名组合可以保存为命名模板,下次一键套用。你的应付账款模板、报销模板等常用配置永久保存,不需要每月重新输入。