关于 invoice-processor
invoice-processor 是将发票文件转为结构化数据和 Excel 报表的处理 Skill,适用于需要批量整理发票的工作。它用视觉模型识别 PDF、JPG、PNG 中的字段,先输出 JSON,再生成格式化 Excel。
主要功能
- 01识别 PDF、JPG、JPEG 和 PNG 发票
- 02将 PDF 转为图像后处理
- 03提取发票类型、号码、日期及金额等字段
- 04将识别结果保存为 JSON
- 05从 JSON 生成格式化 Excel 报表
适用场景
- 01整理目录中的多种格式发票
- 02提取发票信息供后续处理
- 03将识别结果汇总为 Excel 报表
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jst-well-dan/ skill-box --skill invoice-processor安装后在 Claude Code 中输入/invoice-processor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.env.exampledocs/README.mdscripts/check_env.pyconvert_to_excel.pyinvoice_ocr.pyrequirements.txt详细介绍
发票处理器
使用 AI 视觉模型提取结构化信息并生成格式化 Excel 报告的全自动发票文件处理工作流。
使用场景
当用户提及以下内容时自动触发:
- “处理发票” / “识别发票” / “提取发票信息” / “发票转 Excel”
- 处理发票文件(PDF、JPG、PNG)
- 将发票转换为 Excel 格式
执行环境说明
⚠️ 重要:处理非 ASCII 目录名的路径
当项目目录包含中文或其他非 ASCII 字符(例如“发票助手agent”)时,必须使用从项目根目录开始的完整相对路径:
# ❌ WRONG - Will fail with encoding errors
python scripts/check_env.py
# ✅ CORRECT - Use full paths from .claude/skills/
python .claude/skills/invoice-processor/scripts/check_env.py
跨平台兼容性:
- 使用 Unix 风格的命令(Git Bash、Linux、macOS)
- ❌
dir /b→ ✅ls
设置
在 invoice-processor 目录中创建 .env 文件:
# Copy from template
cp .env.example .env
# Edit with your API key
# .env content:
GLM_API_KEY=your_actual_api_key_here
从此处获取 API 密钥:https://open.bigmodel.cn/
工作流
步骤 1:环境检查(推荐)
python .claude/skills/invoice-processor/scripts/check_env.py
检查内容:是否已设置 GLM_API_KEY,以及是否已安装所需软件包(aiohttp、PyMuPDF、openpyxl)
步骤 2:识别发票
# Default: process 'invoices' directory → 'invoice_results.json'
python .claude/skills/invoice-processor/scripts/invoice_ocr.py
# Custom paths
python .claude/skills/invoice-processor/scripts/invoice_ocr.py -i <input_path> -o <output.json>
功能:
- 扫描发票文件(JPG、JPEG、PNG、PDF)
- 将 PDF 转换为图像(200 DPI)
- 并发处理最多 5 个文件
- 提取 9 个字段:类型、号码、日期、买方/卖方名称、金额(不含税/含税)、税额、项目
- 将结果保存为 JSON,并标记成功/错误状态
参数:
-i, --input:输入路径(默认值:invoices)-o, --output:输出 JSON(默认值:invoice_results.json)
前置条件:
.env文件中包含GLM_API_KEY(见下方“设置”)pip install aiohttp PyMuPDF
步骤 3:生成 Excel 报告
# Default: 'invoice_results.json' → 'invoice_results.xlsx'
python .claude/skills/invoice-processor/scripts/convert_to_excel.py
# Custom paths
python .claude/skills/invoice-processor/scripts/convert_to_excel.py -i <input.json> -o <output.xlsx>
功能:
- 读取步骤 2 生成的 JSON
- 创建包含 12 列的格式化 Excel 文件
- 转换成功后自动删除输入 JSON
参数:
-i, --input:输入 JSON(默认值:invoice_results.json)-o, --output:输出 Excel(默认值:invoice_results.xlsx)
前置条件:
pip install openpyxl
使用示例
基础用法(非 ASCII 目录名)
# Full 3-step workflow
python .claude/skills/invoice-processor/scripts/check_env.py
python .claude/skills/invoice-processor/scripts/invoice_ocr.py -i invoices -o invoice_results.json
python .claude/skills/invoice-processor/scripts/convert_to_excel.py -i invoice_results.json -o invoice_results.xlsx
自定义路径
python .claude/skills/invoice-processor/scripts/invoice_ocr.py -i invoices_2024 -o results_2024.json
python .claude/skills/invoice-processor/scripts/convert_to_excel.py -i results_2024.json -o report_2024.xlsx
故障排除
找不到脚本 / 编码错误
错误: can't open file '...\��Ʊ����agent\scripts\...'
原因: 在非 ASCII 目录中,短路径(scripts/)会失效
解决方法: 使用完整路径:.claude/skills/invoice-processor/scripts/...
找不到命令
错误: dir: cannot access '/b'
原因: 在 Unix shell 中使用了 Windows CMD 命令
解决方法: 使用 ls 替代 dir
未设置 API 密钥
错误: 错误: 请在 .env 文件中设置 GLM_API_KEY
解决方法: 在 invoice-processor 目录中创建 .env 文件,并设置 GLM_API_KEY=your_key
未启用 PDF 支持
警告: 未安装 PyMuPDF,PDF 支持已禁用
解决方法: pip install PyMuPDF
备注
- GLM API 限制:最多 5 个并发请求,每个请求超时时间为 60 秒
- 图像限制:最大 5MB,最大尺寸为 6000x6000 像素
- PDF 会自动转换为图像(临时文件会被清理)
- 路径最佳实践: 当项目目录包含非 ASCII 字符时,始终使用完整相对路径(
.claude/skills/invoice-processor/scripts/)
有关详细的设计原则、自定义选项和架构指南,请参阅 README.md。