返回作品列表

网友作品 #000099 · 提交于 2026/08/11

发票批量识别工具:自动写入WPS多维表格

★★★★★零基础办公智能体国内其他模型WPSdbsheet

作品作者

超平零基础
开发工具
办公智能体
AI 模型
国内其他模型
使用 Skill
WPSdbsheet
提交你的作品

作品简介

这是一套“发票批量识别 → 写入 WPS 多维表格”的工具:浏览器页面负责选择图片/PDF 发票并识别,识别结果经本地 Python 代理(保管 token)提交到部署在多维表格里的 WPS AirScript 脚本,最终自动建表写入。首次写入自动创建“发票识别”表并建好字段,之后按发票号码去重,不重复录入。

核心亮点

  • 批量识别:支持 JPG/PNG/BMP/WEBP/PDF,可选文件夹或多个文件导入
  • 双引擎识别:ZXing 二维码引擎优先,扫不出时 OCR 兜底(Tesseract.js,需联网)
  • 八类字段自动落表:发票类型、代码、号码、金额、开票日期、校验码、识别来源、文件名一一映射
  • 自动去重:按发票号码去重,重复发票直接跳过;无号码的识别结果不写入
  • 链路安全:token 由本地代理保管,不暴露在前端页面
  • 省心开关:可勾选“识别后自动写入”,识别与写入一步完成

技术与工具

  • 链路架构:浏览器页面 fetch → 本地 Python 代理(wps_proxy.py,127.0.0.1:8770)→ WPS AirScript WebHook → 多维表格
  • 识别能力:jsQR / ZXing 二维码识别 + Tesseract.js OCR 兜底
  • 开发方式:办公智能体工具搭配国内免费模型,基于 WPSdbsheet skill 完成对接

开发过程

作者起初未使用对应 skill 自行摸索,进度很慢且一直打不通 WPS 多维表格;改用 WPSdbsheet skill 后仅修复 2 次就顺利打通,前后对比非常明显。

适用场景

  • 企业财务报销:批量识别员工提交的报销发票自动归集,减少手动录入、防范重复报销
  • 中小商家票据管理:进货、经营发票批量识别入表,方便做账、报税与经营数据分析
原始提交内容(点开查看,可复制全文去问 AI)

发票识别结果写入 WPS 多维表格

本目录自带的「发票二维码批量识别工具」可把识别出的发票信息直接写入 WPS 多维表格 cc3kbdx8i845。 写入链路完全独立,与「费用报销单」程序无关:

浏览器(invoice-qr-scanner/index.html)
     fetch  http://127.0.0.1:8770/api/write_invoices
   
本目录 wps_proxy.py(本地代理,保管 token)
     POST + 头 AirScript-Token
   
WPS AirScript(airscript_write.js,部署在 cc3kbdx8i845)
   
   
多维表格的「发票识别」表(自动建表 + 按发票号码去重)

一次性配置(只需做一次)

  1. 部署写入脚本

    • 打开 WPS 多维表格 cc3kbdx8i845 顶部「效率」/「工具箱」「高级开发」/「AirScript 脚本」。
    • 新建脚本,把本目录 airscript_write.js 的全部内容粘进去。
    • 点击「运行」/「调试」确认无报错(可临时在 Context.argv 放一条测试数据)。
    • 点击「发布」/「部署为 WebHook」,复制生成的 Webhook 地址 和 Token。
  2. 填配置

    • 打开本目录 wps_config.json,把上一步的地址/令牌填到 airscript_write 段:
      • webhook_url:部署后真实的 https://www.kdocs.cn/api/v3/ide/file/cc3kbdx8i845/script/V2-.../sync_task
      • token:部署后真实的 token(参考「费用报销单」程序的 config.json 里 token 字段格式;若写入报鉴权错误,说明该 token 是只读脚本的,需换成 airscript_write.js 自己的 token)
    • 保存。

每次使用

  1. 启动代理:双击本目录 start_wps_proxy.bat(或命令行 python wps_proxy.py)。 看到 监听 http://127.0.0.1:8770 即成功。保持窗口开着。
  2. 浏览器打开 index.html,选图片/PDF 发票 识别。
  3. 点「 写入WPS多维表格」(或在设置里勾选「识别后自动写入」)。
  4. 首次写入会自动在 cc3kbdx8i845 里新建「发票识别」表并建好字段;之后按发票号码去重,不重复写。

字段映射

多维表字段 来源 类型
发票类型 f.invoiceType 文本
发票代码 f.invoiceCode 文本
发票号码 f.invoiceNumber(去重主键) 文本
金额 f.amount(数值) 数字
开票日期 f.invoiceDate(转 yyyy/mm/dd) 日期
校验码 f.checkCode 文本
识别来源 jsQR / ZXing / OCR 文本
文件名 原文件名 文本

无发票号码的识别结果不会写入(无法去重)。

排错

  • 代理连不上:确认 start_wps_proxy.bat 已运行、端口 8770 未被占用(代理启动会自动杀掉占用该端口的旧进程)。
  • 未配置:把 airscript_write 的 webhook_url/token 填好。
  • 鉴权错误:token 与脚本不匹配——换用 airscript_write.js 部署后生成的 token。
  • 写入 0 条:该批发票号码在表里都已存在(去重跳过),属正常。