- 读取订单系统导出的网页格式
.xls文件。 - 准确定位“取件码”列中图片所在的订单行。
- 识别常见取件码和 12 至 20 位运单号。
- 确保“快递网点”列位于“取件码”前;源表中的“快递站/网点”会统一为“快递网点”,图片后的网点文字也会按图片顺序填入。
- 一张图片有多个号码时,复制整条订单信息,每行只放一个号码。
- 有取件码时优先保留取件码;只有运单号时填写运单号。
- 删除“取件码”列中的图片,不新增辅助列。
- 原文件保持不变,结果另存为新文件。
- 安装 Python 3.10-3.13,安装时勾选
Add Python to PATH。 - 下载本仓库源码并解压。
- 双击
run_pickup_code_ocr.cmd。 - 第一次运行会自动创建
.venv并安装 OCR 依赖。 - 在弹窗中选择订单
.xls文件。
结果保存在工具目录中,文件名类似:
订单_取件码已识别.xls
如果同名文件已存在,程序会自动追加 _2、_3,不会覆盖旧结果。
客户电脑没有 Python 时,请使用免安装构建包:解压后双击 PickupCodeOCR.exe,或运行 运行取件码识别.cmd 查看处理统计。必须保留整个文件夹,不能只复制 EXE。
维护者可以在 Windows + Python 3.11 环境中运行下面的命令生成免安装目录:
.\build_portable.ps1生成目录为 dist/PickupCodeOCR,其中包含 Python 运行时、OCR 依赖和模型文件。
| 输入情况 | 输出规则 |
|---|---|
| 取件码单元格已有文字 | 保留原文字 |
| 图片里有一个取件码 | 写入当前订单行 |
| 图片里有多个取件码 | 复制订单行,每行写一个取件码 |
| 图片里同时出现取件码和运单号 | 优先写取件码 |
| 图片里只有运单号 | 写入运单号 |
| 源表已有“快递站/网点”列 | 移到“取件码”前并统一列名为“快递网点” |
| 源表没有快递网点列 | 在“取件码”前插入“快递网点”列,并读取图片后的网点文字;没有网点文字时留空 |
| 图片处理失败或没有识别到号码 | 写入“未提取到号码”,并在窗口提示复核 |
支持的常见格式:
1-1-1101
207-1-4105
YT8895066339655
SF1234567890123
123456789012345
直接运行 Python:
python pickup_code_ocr.py "D:\订单.xls"指定输出文件:
python pickup_code_ocr.py "D:\订单.xls" -o "D:\识别结果.xls"禁用直连失败后的本地代理重试:
python pickup_code_ocr.py "D:\订单.xls" --proxy ""python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
.venv\Scripts\python.exe pickup_code_ocr.py "D:\订单.xls"- 文件扩展名为
.xls,实际内容是 HTML 网页表格。 - 表头中必须有名为“取件码”的列。
- 图片可以是内嵌 Data URL、本地相对路径或 HTTP/HTTPS 地址。
传统二进制 Excel 97-2003 工作簿不是本工具的目标格式。遇到“文件不是可识别的网页表格”提示时,请先从原订单系统重新导出网页格式 .xls。
程序在本机处理表格和图片,不会主动上传订单数据。只有表格中图片本身使用 HTTP/HTTPS 地址时,程序才会下载该图片。请不要把真实订单文件、客户姓名、电话、地址或运单数据提交到公开 Issue。
- OCR 准确率受截图清晰度、裁剪、遮挡和字体影响。
- 低清图片、反光图片和字符粘连可能需要人工复核。
- 输出仍使用网页格式
.xls,可由 Microsoft Excel 或 WPS 打开。 - 默认在图片直连失败后尝试
127.0.0.1:7897;可通过--proxy修改或禁用。
python -m unittest discover -s tests -v
python -m compileall -q pickup_code_ocr.py tests- RapidOCR 提供本地 OCR 能力。
- Beautiful Soup 用于解析和更新 HTML 表格。
- ONNX Runtime 运行 OCR 模型。
各依赖按其各自许可证发布。
如果这个项目对你有帮助,欢迎在 GitHub 点一个 Star、提交 Issue 或分享给有需要的人。
也可以自愿扫码支持后续维护:
赞赏完全自愿,不影响项目功能、问题反馈或后续使用。
如需替换收款码,只需要替换 docs/donate.png,不需要修改程序代码。
提交问题或改进前请阅读 CONTRIBUTING.md。安全问题请按 SECURITY.md 私下报告。
本项目采用 MIT License。
作者邮箱:1486772654@qq.com。
