← 返回
未分类

发票整理

发票归档自动化处理流程。本技能自动化处理PDF发票归档工作流: 扫描文件夹、读取发票内容、提取金额、自动分类、生成统计表格并打包。 当用户提及"报销"、"发票处理"、"发票归档"、"发票整理"时触发。
>提取指定文件夹内PDF中的发票信息并汇总为EXCEL;按照发票号码对PDF文件进行重命名;打包为zip文件。
user_68bec071
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 148
下载
💾 0
安装
1
版本
#latest

概述

发票归档自动化处理流程

概述

本技能自动化处理日常报销工作流:

  1. 扫描指定根目录下的子文件夹
  2. 筛选包含PDF发票的子文件夹
  3. 读取PDF发票内容,提取金额和分类
  4. 在子文件夹内生成发票统计表(WPS表格格式)
  5. 按发票号码重命名PDF文件
  6. 打包PDF发票为ZIP压缩包

安全限制

⚠️ 重要:路径安全机制

限制项说明
--------------
根目录由用户指定首次运行时提示用户输入发票所在的根目录路径
禁止父目录访问绝对禁止使用 .. 回退到用户指定根目录的上级
仅操作目标子文件夹所有文件操作仅在已确认的子文件夹内
仅处理有效文件夹仅处理包含PDF发票的子文件夹
路径合法性校验所有文件操作前验证路径以用户指定的根目录开头

违反路径限制的操作将被自动拒绝。


默认配置

根目录: "{由用户首次运行时输入}"
姓名: "(留空或填写报销人姓名)"
压缩包格式: "{姓名}{YYYYMMDD}.zip"
统计表名称: "发票统计表.xlsx"

> 重要

> - 首次触发技能时,AI 必须先询问用户"请输入发票所在的文件夹路径",并将用户提供的路径作为根目录

> - 用户可选择性提供姓名,用于压缩包命名;留空时不带姓名前缀

> - 姓名仅用于压缩包命名,不会出现在发票统计表或 PDF 文件中


Skill结构

发票归档/
└── SKILL.md                    # 主技能定义

工作目录结构

{根目录}\                # 用户指定的根目录
├── 示例文件夹1\        # 子文件夹1(有PDF,处理)
│   ├── 发票统计表.xlsx  ← 自动生成
│   ├── 发票1.pdf
│   └── 发票2.pdf
├── 示例文件夹2\        # 子文件夹2(无PDF,跳过)
├── 其他文件夹\        # 子文件夹3(有PDF,处理)
└── ...

> 根目录由用户首次运行时输入,例如 F:\出差\未报D:\报销发票\2026 等。

有效子文件夹条件:

  • ✅ 包含至少1个PDF发票文件

工作流程

第一步:获取根目录

  1. 询问用户:首次触发时,AI 必须向用户询问"请输入发票所在的文件夹路径(根目录)"
  2. 接收用户输入:将用户提供的路径记为 {根目录}
  3. 路径校验:使用 os.path.abspath() 规范化路径,拒绝包含 .. 的路径
  4. 扫描子文件夹:扫描 {根目录} 下的所有子文件夹
  5. 列出文件夹名称,供用户确认

> 可选:用户可同时提供姓名(用于压缩包命名),如未提供则压缩包名不含姓名前缀。

第二步:筛选有效文件夹

对每个子文件夹检查:

  • ✅ 包含至少1个PDF文件

处理结果分类:

状态说明
------------
有效文件夹包含PDF发票,将被处理
无效文件夹无PDF发票,将被跳过并提示

第三步:列出待处理文件夹并确认

检测到以下文件夹:

【有效】需要处理:
  1. 2024年3月差旅费(包含 5 个PDF)
  2. 4月交通费报销(包含 3 个PDF)

【无效】跳过处理:
  1. 项目验收材料(无PDF发票)

请确认是否继续处理有效文件夹?(是/否)

必须用户确认后才继续执行。

第四步:读取PDF发票

对每个有效文件夹中的PDF文件提取:

  • 发票号码:用于重命名文件
  • 价税合计金额:填写统计表
  • 费用分类:自动识别

第五步:生成发票统计表

在每个有效子文件夹内创建 发票统计表.xlsx,包含以下列:

字段名说明
------------------
A列序号自动编号
B列发票号码发票上的号码
C列费用名称自动识别的费用类型
D列价税合计发票金额(元)

统计表格式示例:

序号发票号码费用名称价税合计
------------------------------------
126112000001368449041交通费42.00
226412000001004749381餐费374.00
326412000001168879381餐费259.00

底部加一行汇总:

合计--2301.48

第六步:重命名PDF文件

将PDF文件按发票号码重命名,格式:{发票号码}.pdf

> 例如:滴滴电子发票.pdf16412000000012345678.pdf

第七步:打包压缩包

压缩包只包含PDF文件,不包含统计表。

根据有效文件夹数量采用不同策略:

情况1:单个子文件夹

直接打包为 {姓名}{YYYYMMDD}.zip

情况2:多个子文件夹

步骤1:为每个子文件夹创建临时压缩包(带序号)

{姓名}20260410_001.zip  → 2024年3月差旅费
{姓名}20260410_002.zip  → 4月交通费报销

步骤2:合并所有临时压缩包为一个

最终输出:{姓名}20260410.zip

步骤3:清理临时压缩包

压缩包内容结构:

{姓名}20260410.zip
├── 2024年3月差旅费\
│   ├── 发票统计表.xlsx
│   ├── 发票1.pdf
│   └── 发票2.pdf
├── 4月交通费报销\
│   └── 发票A.pdf
└── ...

第八步:输出任务结果

情况1:单个子文件夹

========== 发票归档处理结果 ==========

【处理完成】
✓ 2024年3月差旅费
  - 处理发票:5张
  - 发票总金额:¥1,234.56
  - 统计表:发票统计表.xlsx
  - 压缩包:{姓名}20260410.zip

【跳过处理】
✗ 项目验收材料 - 缺少PDF发票文件

=====================================
共计处理:1个文件夹,5张发票
压缩包:{姓名}20260410.zip
=====================================

情况2:多个子文件夹

========== 发票归档处理结果 ==========

【处理完成】
✓ 2024年3月差旅费
  - 处理发票:5张
  - 发票总金额:¥1,234.56

✓ 4月交通费报销
  - 处理发票:3张
  - 发票总金额:¥567.89

【跳过处理】
✗ 项目验收材料 - 缺少PDF发票文件

【合并打包】
✓ 已合并为:{姓名}20260410.zip

=====================================
共计处理:3个文件夹,10张发票
压缩包:{姓名}20260410.zip
=====================================

发票费用分类规则

规则定义

费用分类按以下优先级顺序匹配(先匹配到的优先):

交通费(包含以下关键词):

  • 火车、飞机、机票、航班
  • 出租(出租车)、打车、滴滴、滴滴出行
  • 客运、客运服务、运输服务
  • 汽油、燃油、油品、车用乙醇汽油

餐费(包含以下关键词):

  • 餐饮、餐费、餐服务、就餐
  • 饭店、餐厅
  • 金额 ≤ 500元

招待费(包含以下关键词):

  • 餐饮、餐费、餐服务
  • 金额 > 500元

住宿费(包含以下关键词):

  • 住宿、酒店客房、房费、住宿费

办公费(包含以下关键词):

  • 办公、纸张、文具、电脑、耗材、办公用品

文印费(包含以下关键词):

  • 打印、复印、文印、装订、印刷、印刷费

邮费(包含以下关键词):

  • 快递、邮寄、邮费、邮政、ems

培训费(包含以下关键词):

  • 培训、培训费、课程、学习

效果图设计费(包含以下关键词):

  • 效果图、设计效果图

文本制作费(包含以下关键词):

  • 文本制作、文案、排版

设计费(包含以下关键词):

  • 设计费、设计服务(不含效果图)

咨询费(包含以下关键词):

  • 咨询、咨询费、顾问

技术服务费(包含以下关键词):

  • 技术服务、技术开发、技术咨询

工程费(包含以下关键词):

  • 工程、工程款、施工

设备费(包含以下关键词):

  • 设备、设备购置、仪器

材料费(包含以下关键词):

  • 材料、材料费、原料

安装费(包含以下关键词):

  • 安装、安装费、施工安装

软件费(包含以下关键词):

  • 软件、软件费、软件购买

办公家具(包含以下关键词):

  • 家具、办公家具、桌椅

图书(包含以下关键词):

  • 图书、书籍、书刊

福利费(包含以下关键词):

  • 福利、福利费、员工福利

保险费(包含以下关键词):

  • 保险、保险费、保费

会费(包含以下关键词):

  • 会费、会员费、协会

租车费(包含以下关键词):

  • 租车、租车费、车辆租赁

维修费(包含以下关键词):

  • 维修、维修费、修理

租赁费(包含以下关键词):

  • 租赁、租金、场地租赁

通讯费(包含以下关键词):

  • 通讯、话费、通讯费、电话费

物业费(包含以下关键词):

  • 物业、物业费、物业管理

> 注意:若以上关键词均未匹配,则归类为"其他"。产生统计表前,若发票数量较多,可按摘要内容人工复核分类结果。


技术注意事项

PDF金额提取

  • 金额格式示例:价税合计(大写) 肆拾贰圆整 (小写)¥42.00
  • 正则表达式(金额):r'价税合计[^¥¥][¥¥]\s(\d+\.?\d{0,2})'
  • 匹配"价税合计"和"(小写)"后面的金额数字
  • 注意:发票金额可能包含多个数字(票价+税额),需取最接近价税合计的值(通常在最后)

发票号码提取

  • 正则表达式:r'(?:发票号码[::]\s*)?(\d{20,})'r'(1\d{19})'
  • 注意:铁路发票电子客票号(如 6581863086042892592382026)不等于发票号码,应匹配 发票号码: 后面的才是真实发票号
  • 发票号码格式:20位数字,常见前缀:144/164/261/264等
  • 铁路发票内含两种号码:
  • 发票号码(20位,以发票号码:为标记)→ 用于重命名
  • 电子客票号(含字母E或26位数字)→ 忽略

PDF读取

  • 使用 pdfplumber 读取PDF内容
  • 注意中文编码,使用 sys.stdout.reconfigure(encoding='utf-8')

Excel操作

  • 使用 openpyxl 创建统计表
  • 表头加粗,数据区域设置合适列宽
  • 底部添加汇总行

路径安全

  • 使用 os.path.abspath() 确保路径正确
  • 验证所有操作路径以用户指定的 {根目录} 开头
  • 拒绝任何包含 .. 的路径操作
  • 首次运行前必须获取用户确认的根目录路径

规则更新说明

修改分类规则

编辑"发票费用分类规则"部分:

  • 可新增发票项目名称映射
  • 可调整金额阈值(如招待费标准从500改为其他值)

修改默认配置

编辑本文件的 默认配置 部分:

  • 根目录路径
  • 姓名
  • 压缩包命名格式
  • 统计表名称

分享给同事

将整个 发票归档 文件夹打包分享(只需 SKILL.md),同事解压到 ~/.workbuddy/skills/ 目录即可使用。

同事可自行修改 SKILL.md 中的默认配置以适应自己的工作环境。

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-04-29 19:51 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

self-improving agent

pskoett
捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身
★ 4,078 📥 808,437
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,376 📥 320,164
ai-agent

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,225 📥 267,635