AI批量PDF数据抓取工具

AI 批量 PDF 数据抓取工具 使用说明

Excel VBA + 智谱 GLM 大模型 · 自定义提取项 · 零代码改动

一、工具简介

这款工具把「大模型对话、PDF 布局识别、自定义字段提取」三件事串成一条自动化流水线,操作入口只有一个:在 Excel 里运行一次宏、选中一个文件夹。接下来它会自动读遍文件夹里的所有 PDF,把你要的信息按列整理进一张新建的工作表,全程不需要逐份打开文件、也不需要手工复制粘贴。

工具的主要特点如下:

  • 全流程自动:从 PDF 解析、字段识别到结构化输出一次性完成,批量文件可无人值守处理。

  • 字段零代码:要提取哪些信息,只在 ConFig 工作表里填写即可,核心代码完全不用改。

  • 环境兼容广:32 位 / 64 位 Office 与 WPS 均可运行,HTTP 组件自动降级兜底,中文系统下的小数点格式、UTF8 编码问题已内置处理。

  • 网络更稳定:内置 3 次自动重试,遇到限流或网络波动会自动延时重试,不会中途卡死。

  • 密钥更安全:支持把 API Key 存放在 Excel 名称管理器中,避免明文写在代码里泄露。

  • 无外部依赖:JSON 解析全部由原生 VBA 实现,不引用任何第三方解析库,导入后即可运行。

二、运行环境准备

在正式使用前,请按下面四步把环境准备好:

  1. 软件要求:安装 2013 及以上版本的 Microsoft Excel,或最新版 WPS Office,32 位 / 64 位系统均可。

  2. 打开开发工具:依次点击「文件 → 选项 → 自定义功能区」,在右侧勾选「开发工具」复选框,确定后功能区就会出现 VBA 操作入口。

  3. 确认工作表齐备:工作簿中需存在名为 ConFig 的工作表,用于填写配置与提取项;结果会写入「结果输出」表,若该表不存在,工具会自动在 ConFig 表之后创建。

  4. 获取接口密钥:登录智谱 AI 开放平台,创建并复制你的 API Key。

三、配置自定义提取字段

3.1 填写要提取的项目

所有要从 PDF 里抓取的内容,都写在 ConFig 工作表里,不需要改动任何代码:

  • 在 ConFig 工作表的 B15 至 B18 单元格中,依次填入提取项名称,例如「合同编号」「甲方名称」「总金额」「签订日期」。

  • 不必填满四格,空白单元格会被自动跳过,最少可以只配置 1 个提取项。

  • 填写完成后保存文件,配置即刻生效。若四格全部为空,运行工具时会弹出提示并中止,避免空跑。

3.2 放置 API Key

API Key 支持两种放置方式,任选其一即可:

  • 方式一(直接填写):在代码配置区的 CFG_KEY 常量中填入密钥。

  • 方式二(推荐,更安全):CFG_KEY 留空,改用 Excel 名称管理器新建一个名称 nesangaikey,在「引用位置」中填入 API Key。

采用方式二时,工具会自动读取该名称中的密钥,并清洗掉意外混入的空格、换行与特殊符号,只保留智谱密钥允许的合法字符。

备考:如果没有智谱KEY,请参考我的VBA推广课《EXCEL_VBA调用AI大模型》资料.

3.3 其他可调参数速查

以下参数均集中存放在代码配置区,按需调整即可,无需改动核心逻辑:

配置项

默认值

说明

CFG_KEY

空

接口密钥;留空则自动读取名称管理器中的 nesangaikey

CFG_MODEL

glm-4.5-flash

指定调用的对话模型,可替换为其他可用模型

CFG_TEMP

0.3

温度参数,事实提取类任务建议 0.2~0.4,越低输出越精准

CFG_MAXTOK

2048

限制模型最大输出长度,防止返回过长导致解析溢出

CFG_MAX_PDF_MB

50

单个 PDF 文件大小上限(MB),超出则跳过

CFG_MAX_TEXT_LEN

10000

传入模型的正文最大长度(字符),超出自动截断

CFG_NOTHINK

True

关闭模型思考模式,显著提升接口响应速度

四、接口连通性自检

正式批量处理前,建议先花几秒验证密钥与网络是否通畅:

  1. 按 Alt+F11 打开 VBA 编辑器,在代码窗口直接运行 mynzTestGLM 过程。

  2. 等待数秒后会弹出提示框,显示本次接口响应耗时与模型返回内容。

  3. 返回「连接成功」即代表密钥、网络通路、接口调用全部正常,可以开始批量处理。

五、批量提取操作流程

  1. 在 Excel 中点击按钮,会选择 mynzAIBatchExtractsSpecifiedContentFromPDF,执行。
  1. 在弹出的文件夹选择窗口中,选中存放全部待处理 PDF 的本地文件夹,点击确定。
  1. 工具自动开始遍历文件夹内的所有 PDF,状态栏实时显示「正在读取第 N 份(AI 读取中):文件名」,全程无需人工干预。

  2. 遍历过程中会自动跳过 Office 临时生成的「~$」开头的锁定文件,不会误读。

  3. 全部文件处理完毕后,工具自动弹出汇总窗口,并在「结果输出」工作表中生成结构化的提取结果。

六、结果查看与收尾

6.1 结果表的结构

「结果输出」表的表头会根据你填写的提取项自动生成,列结构固定为:序号、文件名称、各自定义字段,表头自动加粗并填充淡蓝色底纹,方便与数据区区分。

列位置

内容说明

第 1 列

序号,按成功处理的顺序自动编号

第 2 列

文件名,已设置为超链接,点击可直接打开对应的原 PDF

第 3 列起

你在 ConFig 表 B15:B18 中填写的自定义提取项,逐列对应

全部处理结束后,工具会自动对结果表执行全列宽度自适应,你可以直接复制数据到其他报表,也可以另存为新的 Excel 文件使用。

6.2 汇总信息与失败处理

收尾弹窗会展示本次任务的关键统计,包括提取的项目列表、共找到的 PDF 数量、读取成功数量、失败数量,以及失败文件清单。

遇到识别失败的文件,可按以下顺序排查后单独重跑:

  • 确认该 PDF 没有被其他程序占用(如已在 PDF 阅读器中打开);

  • 确认文件大小未超过 50MB 的上限;

  • 确认文件未加密、未损坏,能够正常打开;

  • 确认后重新运行工具,只把该文件放入待处理文件夹即可单独补处理。

七、工具运行逻辑概览

整套工具按「底层工具 → 结果表 → 调度 → 单文件处理 → 收尾」的顺序组织,模块之间分工清晰、互不耦合:

  • 全局基础层:统一锁定配置表名与结果表名,提供「获取或创建工作表」「空值兜底」「读取自定义字段」三个通用函数,供上层反复调用。

  • 结果表生成层:依据自定义字段自动计算列数,动态生成表头、样式与初始列宽,每次运行都能自动适配当次的提取需求。

  • 主流程调度层:读取提取项并校验,唤起文件夹选择窗口,初始化结果表,随后遍历文件夹内的全部 PDF。

  • 单文件处理层:先调用智谱布局解析接口把 PDF 转为文本,再把文本、文件名与字段数组交给大模型提取,最后按列写入结果表并添加超链接。

  • 收尾统计层:关闭进度提示、自动适配列宽,并弹出包含提取项、文件总数、成功与失败清单的汇总信息。

相关推荐
VBA63374 天前
VBA数据库解决方案第二十六讲 工作表中不存在的数据在数据表中批量删除
vba
Access开发易登软件23 天前
我全新开发了一套 Access 通用 Excel 导入工具,现在开源了
数据库·microsoft·excel·mfc·vba·access·access开发
VBA633723 天前
VBA之Word应用第五章第九节 Range对象的方法(三)
vba
wuchunyu0021 个月前
VBA 行内容相同时字体变灰
vba
VBA63371 个月前
VBA 64位API声明语句第025讲
vba
Access开发易登软件1 个月前
Access 导入 Markdown 表格:把文档里的数据写进表
前端·html·vba·markdown·access开发
zhongwei2281 个月前
vba将一个文件夹的内容复制到另外一个文件夹的函数,若存在则是否覆盖的参数。复制前检查源文件夹是否存在。若目标文件夹不存在,则新建
前端·vba
Access开发易登软件2 个月前
Access 复杂业务计算,SQL 写在 VBA 还是存储过程?
microsoft·vba·access·access开发
SunnyDays10112 个月前
如何使用 Python 添加和编辑 Excel VBA 宏(无需安装 Excel)
开发语言·python·excel·vba