大数跨境

一整个文件夹的合同和发票,怎样批量生成台账、批量核验发票真伪?

一整个文件夹的合同和发票,怎样批量生成台账、批量核验发票真伪? AIGoldRay
2026-09-14
9
导读:我做了一个合同发票批量提取工具,还能批量核验发票真伪

我做了一个合同发票批量提取工具,还能批量核验发票真伪

做财务、审计、授信审查或者项目管理时,我们经常会收到一整个文件夹的合同和发票。

文件不一定整齐:有的是带文字层的 PDF,有的是扫描件,有的是 Word,还有的是手机拍摄的图片。真正开始工作后,大家需要的也不是“打开文件看一眼”,而是把其中的买卖双方、金额、日期、付款条件、税率、项目名称等信息逐项摘出来,再整理成一份能够筛选、统计和复核的 Excel 台账。

单份文件并不难。难的是几十份、几百份文件连续处理时,仍然要保证:

  • 没有漏掉文件;

  • 没有抄错金额、日期和编号;

  • 合同中的付款、验收和违约条款没有摘偏;

  • 销售与采购方向判断正确;

  • 发票台账和真伪核验结果能够一一对应。

所以,我最近做了一个 Windows 桌面工具,尝试把这段重复而琐碎的工作串起来。它面向的不是单份文件演示,而是整批任务:选择一个合同或发票文件夹后,程序会递归扫描其中的文件,批量识别、批量提取、批量生成台账;对于发票,还可以在台账生成后继续逐张批量核验真伪。

它不替代财务人员、法务人员或审查人员作出最终判断。它做的事情更具体:

把整批文件的读取、提取、台账整理、分类统计和发票核验交给程序,把人的时间留给复核和判断。

【01|软件主界面】

图注:合同与发票共用一套桌面入口,选择文件夹后即可批量处理。

01 为什么合同、发票整理特别适合自动化

传统整理方式通常是这样的:

打开第一份文件→ 找到主体、日期、编号和金额→ 复制到 Excel→ 再找付款、验收、税率等信息→ 打开下一份文件→ 重复以上操作→ 最后再做分类和汇总

这里没有哪一步特别复杂,但每一步都需要注意力。

当文件数量增加后,问题会迅速放大:扫描件需要先识别文字,合同条款分散在不同页面,发票版式也不完全一致;有些 PDF 自带文字,有些只有图片,还有些文件一部分页面有文字、一部分页面需要 OCR。

而且,合同和发票的整理目标并不相同。

合同更关注交易双方、合同标的、含税与不含税金额、付款节奏、质保金、履行期限、交付验收、发票约定、付款违约责任和争议解决等信息。

发票则不仅要提取发票号码、开票日期、购销双方、项目名称、不含税金额、税率、税额和价税合计,判断这张票属于销售发票还是采购发票,还要进一步核验发票的真实性,并为每张发票保留核验状态、说明、时间和结果截图。

这意味着,单纯把图片转成文字还不够。真正有价值的是把不同格式、不同版式的原始材料,转成字段统一、可以筛选和汇总的数据。

02 两条批量处理链路,从原始文件一直走到核验结果

这个工具不是要求用户逐份选择文件,而是以文件夹为一个批次统一处理。两条主要处理链路可以概括为:

合同批次:整批原始合同 → 批量内容识别 → 批量结构化提取 → 合同台账与统计发票批次:整批原始发票 → 批量内容识别 → 批量结构化提取 → 发票台账 → 逐张批量核验 → 结果回写与截图留档

第一层,是读取原始文件。

对于常见的 PDF、Word 和图片,程序会先判断文件类型和内容状态。带有可用文字层的 PDF 优先直接读取;扫描件或文字严重缺失的文件,再交给 OCR。混合型 PDF 则按页面处理,尽量避免整份文件重复识别。

第二层,是理解内容并提取字段。

识别得到的文本会被统一整理,再由大模型按照合同或发票对应的字段规则进行结构化提取。金额字段会进一步清洗,日期、编号、交易双方等内容也会进入统一列。

第三层,是形成可继续工作的结果。

程序不是只输出一段识别文字,而是直接生成合同台账或发票台账,并根据己方公司名称判断销售、采购方向,按年月和交易对方形成统计工作表。

【02|运行日志】

图注:处理过程分阶段显示,失败文件也会在日志中留下具体原因。

03 合同整理:不只是抽取金额

整理合同台账时,最容易被低估的是“字段之间的业务关系”。

例如,一份合同里可能同时出现合同总价、阶段付款比例、质保金比例和违约金标准。如果只搜索数字,很容易把几个金额混在一起。付款条件还可能散落在“结算方式”“验收”“发票开具”和“违约责任”等不同条款中。

当前版本会重点提取以下内容:

  • 合同类型、买方名称、卖方名称;

  • 商品或服务内容、规格与数量;

  • 合同含税金额、不含税金额和币种;

  • 是否预付、付款期数、各期比例、账期和回款依赖;

  • 质保金或保证金;

  • 签订时间、合同编号或订单号;

  • 履行期限、交付与验收节点;

  • 发票类型与税率约定;

  • 付款相关违约责任、争议解决;

  • 无法确认或需要人工复核的疑点。

如果同一个文件中包含多份合同,程序会尝试按合同编号、签订日期和交易双方的变化拆分记录,而不是默认“一份文件只对应一行”。

填写己方公司名称后,程序还会根据己方处于买方还是卖方,自动标记为采购合同、销售合同、内部合同或第三方合同,并识别对方名称。若提供关联方名单,还可以在台账中增加关联方标记。

最终生成的 Excel 除了“合同台账”,还可以包含“销售合同统计”和“采购合同统计”,按年月、交易对方汇总合同数量和金额。

【 03|合同台账与统计】

图注:合同关键信息汇总为一行,并按年月和交易对方形成分类统计。

04 发票批量整理、批量核验:从识别到查验形成闭环

发票处理看起来比合同标准化,但实际也有几个容易出错的地方。更重要的是,当前工具处理的不是“上传一张、识别一张”,而是先把一个文件夹中的发票批量整理成台账,再按照台账逐张执行批量核验。

第一,发票可能是文本型 PDF,也可能是扫描件。当前工具采用“文字优先、质量校验、必要时再 OCR”的方式:能够可靠读取的文字层直接使用;发现关键栏位、编号或金额严重缺失时,再回退到 OCR。

第二,同一张发票可能有多个商品或服务项目。工具会按原发票中的出现顺序提取不同项目名称,而不是只保留第一项。

第三,提取完成并不等于核验完成。当前版本可以继续访问国家税务总局全国增值税发票查验平台,根据已经生成的发票台账,连续逐张填写发票信息并读取网页返回结果。使用者不需要每核验一张票就重新复制号码、日期和金额,也不需要再把核验结论手工抄回 Excel。

验证码优先由本地识别模型处理。自动识别多次仍未通过时,软件会弹出独立的人工验证码窗口,由使用者看图填写,不会因为浏览器在后台运行就无法继续。

核验完成后,发票台账会追加:

  • 真伪;

  • 核验状态;

  • 核验说明;

  • 核验截图;

  • 核验时间。

每张发票的结果截图也会单独保存在输出目录中,便于日后回看。每完成一张核验,结果就会立即写入并保存到工作簿,减少长批次运行中途异常造成的结果丢失。程序在处理下一张发票前会重新加载查验页面,并核对返回结果中的发票号码,避免上一张发票的页面结果串到下一张。

因此,这里的“批量核验”并不是简单地把浏览器重复点击很多次,而是把一整批发票的提取数据、查验状态、说明、截图和时间对应到同一份台账中,形成可以继续筛选和复核的结果。

【 04|发票自动查验过程】

图注:程序逐张提交查验信息,查验结论以税务网站实际返回内容为准。

【 05|发票台账和核验截图目录】

图注:提取结果、查验结论和结果截图在同一批次中对应保存。

05 实际使用,只需要几个步骤

我没有把它做成需要培训很久的复杂系统。日常使用主要分为以下几步。

第一步:配置模型 API

软件右上角有单独的“API 配置”入口。

合同和发票的结构化提取使用 DeepSeek;扫描件和图片的 OCR 使用智谱 GLM-OCR。DeepSeek 配置一个 API Key,多文件共享同一个客户端并行处理;GLM-OCR 可以按账号配置,每个账号设置并发数。

【 06|API 配置窗口】


第二步:准备输入和输出文件夹

把需要处理的合同或发票集中放入一个文件夹。在软件中选择一次输入文件夹和输出文件夹,也可以直接把文件夹从资源管理器拖入输入框。后续文件扫描、内容识别和台账生成都按这一批次连续执行,不需要逐份添加文件。

软件默认递归处理子文件夹,适合原始资料已经按客户、项目或月份分目录存放的情况。为了避免下次扫描时把结果再次当成输入,输出文件夹不能放在输入文件夹内部。

第三步:选择运行模式

合同支持三种模式:

  1. 完整分析:从原始文件开始,依次完成文字提取、结构化分析和 Excel 导出。

  2. 重新提取:已经生成 Markdown 时,跳过文件转换,重新提取字段。

  3. 重新统计:已经有合同台账时,不再调用模型,只按新的己方公司名称或关联方名单刷新性质标记和统计。

发票支持完整分析和使用已有 Markdown 重新提取。真伪核验也可以通过界面选项决定是否对整批发票继续执行。

这种拆分的好处是:调整分类名单或统计口径时,不一定要从原始文件全部重跑。

第四步:启动任务并复核结果

运行日志会持续显示当前进度。任务结束后,可以直接打开输出目录查看 Excel 台账、统计工作表、中间提取结果、调试文件和发票核验截图。

Excel 会自动设置表头、筛选、冻结首行、列宽、边框、换行和金额格式,生成后即可继续筛选、补充和复核。

06 它具体替我做了什么

工作环节 原来的做法 使用工具后
文件读取 逐份打开 PDF、Word 或图片 一次选择文件夹,递归扫描并批量处理
扫描件识别 手工 OCR 或边看边录入 自动判断,必要时调用 OCR
合同字段整理 在不同条款中逐项寻找 按统一字段提取并生成台账
发票字段整理 逐张抄录票号、税率和金额 批量提取并清洗金额字段
销售采购分类 人工判断己方是买方还是卖方 根据己方公司名称自动标记
汇总统计 手工透视或重复做公式 自动生成销售、采购统计工作表
发票查验 逐张打开网站、复制信息、记录结论并截图 按发票台账连续批量核验,逐张回写状态并保存截图
失败处理 容易在批量操作中遗漏 日志保留失败文件和具体原因

这里最重要的变化,并不是把每个动作都变成“无人值守”。

更准确地说,是把人从大量复制、粘贴、切换窗口和重复录入中解放出来,再集中检查程序标出的结果和疑点。

07 我刻意保留了几个人工环节

做这类工具,真正危险的不是它偶尔识别失败,而是让人误以为结果永远正确。

所以,当前版本刻意保留了几个边界:

  • 合同条款由模型提取,但重要金额、付款条件、违约责任仍应回到原文核对;

  • 发票“真伪”来自税务查验平台的实际返回,网站异常、请求受限或字段不完整时,结果会标为未知或相应状态,不强行下结论;

  • 自动验证码失败后交给人工,不尝试绕过必要的验证步骤;

  • 无法可靠判断的内容保留为疑点,而不是编造一个看似完整的答案;

  • 使用者应确认自己有权处理相关合同和发票,并根据单位的数据安全要求决定是否调用外部模型 API。

这也是我对业务自动化的理解:

不是把“人”从流程中删除,而是把人的注意力放到真正需要判断的地方。

08 还有哪些地方准备继续完善

当前版本已经完成了合同台账、发票台账、销售采购统计和发票真伪核验的基本闭环,但距离成熟的生产工具仍有继续优化的空间。

后续可以考虑:

  • 增加合同与发票之间的自动匹配;

  • 对金额、税率、主体和项目名称做更系统的一致性检查;

  • 增加批次汇总、失败重试和人工复核状态;

  • 支持自定义字段模板,适应不同行业的合同台账口径;

  • 增加本地化或企业内网模型方案,进一步控制敏感数据的处理边界。

写在最后

很多办公室自动化项目,真正有价值的地方并不是做出一个会“识别文件”的演示,而是让输出能够接住下一步工作。

合同和发票也是一样。

从原始文件到文字,从文字到字段,从字段到 Excel,再从 Excel 回到人的复核和判断——只有把这条链路真正串起来,自动化才不只是少点几次鼠标,而是让一项原本零散、重复、容易出错的工作,变成一套可以持续复用的流程。

这个工具还在继续完善。

但至少现在,面对一整个文件夹的合同和发票时,我不必再从第一行 Excel 开始,一份一份地复制了。

获取软件

如果你也需要批量整理合同和发票、自动生成 Excel 台账,或者批量核验发票真伪,欢迎关注本公众号,并在后台私信回复关键词:

合同发票

系统将自动发送软件下载链接。


【声明】内容源于网络
0
0
AIGoldRay
聚焦投资,传播干货
内容 9
粉丝 0
AIGoldRay 聚焦投资,传播干货
总阅读70
粉丝0
内容9