← 返回
未分类

银行对账单处理和转换

银行对账单转换为各系统标准银行账户流水导入模板的技能。当用户需要将银行对账单文件(MT940格式的SWIFT银行对账单、国内各银行的Excel格式对账单、或PDF格式对账单)转换为BIPV5、金蝶云星瀚(EAS_YXH)、保融ATS(FINGARD)、九恒星司库(NSTC)、用友NCC(YYNCC)等系统的标准导入模板时,**必须使用此技能**。 **核心功能**:解析MT940/Excel/PDF格式银行对账单 → 智能字段映射 → 生成对应系统标准Excel/xls导入模板 **支持的目标系统**: - **BIPV5**(默认):银行流水处理 Excel 模板 - **EAS_YXH**(金蝶云星瀚):离线明细导入 .xlsx 模板 - **FINGARD**(保融ATS):离线信息 .xls 模板 - **NSTC**(九恒星司库):批量导入银行明细格式 .xls 模板 - **YYNCC**(用友NCC):数据页签 .xls 模板 **必须触发场景**: - "银行对账单转换"、"MT940解析"、"银行流水导入模板" - "境外银行对账单"、"SWIFT对账单处理"、
银行对账单转换为各系统标准银行账户流水导入模板的技能。当用户需要将银行对账单文件(MT940格式的SWIFT银行对账单、国内各银行的Excel格式对账单、或PDF格式对账单)转换为BIPV5、金蝶云星瀚(EAS_YXH)、保融ATS(FINGARD)、九恒星司库(NSTC)、用友NCC(YYNCC)等系统的标准导入模板时,**必须使用此技能**。 **核心功能**:解析MT940/Excel/PDF格式银行对账单 → 智能字段映射 → 生成对应系统标准Excel/xls导入模板 **支持的目标系统**: - **BIPV5**(默认):银行流水处理 Excel 模板 - **EAS_YXH**(金蝶云星瀚):离线明细导入 .xlsx 模板 - **FINGARD**(保融ATS):离线信息 .xls 模板 - **NSTC**(九恒星司库):批量导入银行明细格式 .xls 模板 - **YYNCC**(用友NCC):数据页签 .xls 模板 **必须触发场景**: - "银行对账单转换"、"MT940解析"、"银行流水导入模板" - "境外银行对账单"、"SWIFT对账单处理"、"生成BIP导入文件" - "PDF对账单转换"、"PDF银行流水"、"银行PDF导入" - "转换为金蝶云星瀚模板"、"EAS_YXH导入"、"金蝶流水导入" - "转换为保融ATS"、"FINGARD对账单"、"保融流水导入" - "转换为九恒星"、"NSTC导入"、"九恒星司库流水" - "转换为用友NCC"、"Yonyou NCC导入"、"NC流水" - "bank statement import"、"MT940 to BIP"、"PDF to BIP" - 处理MT940格式(TXT/STA文件)的银行对账单 - 国内银行Excel格式对账单转换(如招商银行、中信银行、兴业银行等) - 国内银行PDF格式对账单转换(如农商行、平安银行、恒丰银行、浙商银行、郑州银行等) - 批量转换多银行对账单生成导入模板(合并为单个文件) - 将银行流水数据导入到BIPV5、金蝶云星瀚、保融ATS、九恒星司库、用友NCC等系统 - 处理对账单中账号与交易明细分离的情况 - 当用户提到银行对账单、MT940、SWIFT、银行流水、账户流水、PDF对账单、金蝶/保融/九恒星/用友等关键词时 **输出位置**:默认情况下,输出文件将保存在与输入文件相同的目录中,保持数据同位置管理。 **特性说明**: - 支持MT940格式解析(SWIFT标准银行对账单) - 支持国内各银行Excel格式对账单(招商、中信、兴业、浦发、民生、徽商、广西北部湾、渤海、国开、中原等) - **支持国内各银行PDF格式对账单**(文本型PDF + 可选OCR支持图片型PDF) - 内置余弦相似度算法智能匹配字段(自动处理列名差异) - 支持对方账号/对方名称的多种别名匹配(对方账号、对手账号、收款账号等) - 可配置的JSON映射文件支持灵活扩展新的银行格式和目标系统 - 支持借贷标识自动分离、日期格式转换、币种处理 - 支持从表头区域自动提取本方账号信息 - 自动清理账号中的币种标识(如"账号(人民币)"自动处理) - PDF解析支持多种列头折行格式(如"交易时"+"间" → "交易时间") - PDF解析使用PyMuPDF的X/Y位置信息按列重组表格(不依赖固定列数) - 5 个目标系统的输出严格遵循各自模板格式(EAS_YXH 保留单元格批注和下拉项;FINGARD/NSTC/YYNCC 保留说明 sheet 和对照表) **注意**:本技能通过可配置的映射文件支持灵活扩展新的银行格式和目标系统,无需修改代码即可适应新的对账单格式。 **模板文件加载策略(兼容 clawhub 等不支持上传二进制模板的市场)**: - 5 个目标系统的导入模板位于 `assets/template/` 目录下: - `YYBIPV5_banktransaction.xlsx` — BIPV5 - `eas_yxh_banktransaction.xlsx` — 金蝶云星瀚 - `fingard_banktransaction.xls` — 保融ATS - `nstc_banktransaction.xls` — 九恒星司库 - `yyncc_banktransaction.xls` — 用友NCC - 当用户基于 clawhub 之类的市场安装本 skill,且 `assets/template/` 目录下缺失对应模板文件时,会自动从预配置的互联网地址下载到本地使用。 - 模板加载统一入口:`scripts/core/template_manager.py::resolve_template(target_system)`。
jreadstone
未分类 community v1.0.3 3 版本 97619 Key: 无需
★ 0
Stars
📥 41
下载
💾 0
安装
3
版本
#latest

概述

BIPPI-imp-trm-accstmt - 银行对账单转换技能

将银行对账单文件(MT940格式、国内银行Excel格式或PDF格式)转换为目标系统的标准银行账户流水导入模板。

核心特性

  1. 多格式解析支持:通过插件化的解析器系统支持扩展(MT940/Excel/PDF)
  2. 多系统输出支持:通过插件化的映射器系统支持扩展:
    • BIPV5:银行流水处理 Excel 模板
    • EAS_YXH(金蝶云星瀚):离线明细导入 .xlsx 模板
    • FINGARD(保融ATS):离线信息 .xls 模板
    • NSTC(九恒星司库):批量导入银行明细格式 .xls 模板
    • YYNCC(用友NCC):数据页签 .xls 模板
  3. 智能字段匹配:使用余弦相似度算法匹配可能存在细微差异的列名
  4. 可配置映射:通过JSON配置文件管理字段映射关系
  5. 批量合并:支持将多个银行对账单合并为单个文件
  6. PDF支持:基于PyMuPDF的X/Y位置信息按列重组表格,兼容多种列头折行格式

支持的银行格式

国际格式

  • MT940 (SWIFT标准银行对账单)

国内银行Excel格式

国内银行PDF格式

使用方法

基本转换

单文件转换

请将 平安银行.pdf 银行对账单转换为 目标 系统的导入模板

批量合并转换(将目录下所有对账单合并为单个文件):

将当前目录下所有银行对账单(MT940、Excel和PDF格式)合并转换为一个目标系统的导入模板

完整参数指定

将以下银行对账单转换为 BIPV5 系统导入模板:
- 输入文件:/path/to/平安银行.pdf
- 输出文件:/path/to/output/BIPV5_平安银行.xlsx
- 目标系统:BIPV5
- 账户组织编码:ORG001
- 银行名称:平安银行

输出位置说明

转换模式默认输出位置
------------------------
单文件转换与输入文件相同目录
批量合并转换与输入目录相同位置
指定输出路径用户指定路径

输出文件名格式:

  • 单文件:{原文件名}_BIPV5.xlsx
  • 合并文件:merged_BIPV5.xlsx

工作流程

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  输入文件       │───▶│  格式解析器     │───▶│  数据映射器     │───▶│  输出生成器     │
│  (MT940/Excel/  │    │  (Parser)       │    │  (Mapper)       │    │  (Excel)        │
│   PDF)          │    │                 │    │                 │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘    └─────────────────┘
                              │                      │                      │
                              ▼                      ▼                      ▼
                       parsers/              mappings/               输出文件
                       mt940_parser.py       mt940_to_bipv5.json     BIPV5_银行流水.xlsx
                       excel_parser.py
                       pdf_parser.py

BIPV5目标字段

字段代码中文名称必填说明
--------------------------------
accentity_code账户使用组织编码组织编码
bankaccount_account*银行账号银行账号
bankNumber_name银行名称开户行名称
bank_seq_no*本方交易流水号银行流水序号
tran_date*交易日期交易日期YYYY-MM-DD
tran_time交易时间交易时间HH:MM:SS
dc_flag借贷标识C=贷,D=借
debitamount支出金额借方发生额
creditamount收入金额贷方发生额
currency_name*币种ISO币种代码
tran_amt金额交易金额
to_acct_no对方账号交易对方账号
to_acct_name对方户名交易对方名称
to_acct_bank_name对方银行名称对方银行
use_name用途资金用途
remark摘要交易摘要
remark01附言附加说明
acct_bal余额账户余额

解析器系统

MT940解析器

MT940格式关键字段映射:

MT940 Tag说明示例
-----------------------
:20:交易参考号STMT24010001
:25:账号识别1234567890
:28C:语句编号1/1
:60F:期初余额D240101USD1000,00
:61:交易记录日期+借贷+金额
:86:交易详情对方名称等
:62F:期末余额C240131USD1500,00

Excel解析器特性

  1. 智能表头识别:自动查找包含"交易日期"或"交易时间"的行作为表头
  2. 账号自动提取:从表头区域提取本方账号、户名、币种信息
  3. 币种清理:自动清理账号中的币种标识
  4. 字段智能匹配:使用余弦相似度匹配各种列名格式

PDF解析器特性

  1. 双模式支持
    • 文本型PDF(默认):使用 PyMuPDF 的 page.get_text() 直接提取文字
    • 图片型PDF(可选):通过可插拔 OCR 接口(默认 Tesseract)识别
  1. 位置信息驱动:使用 PyMuPDF 的 X/Y 坐标信息按列重组表格,不依赖固定列数
  1. 列头归一化:智能处理多种列头折行格式:
    • 中文两行折行(如 交易时 + 交易时间
    • 中英文对照(如 贷方发 + 生额(收 + 入)贷方发生额(收入)
    • 含括号元(如 发生金额(元)发生金额
  1. 可插拔OCR接口

```python

from scripts.parsers.pdf_parser import PDFParser, TesseractOCR

parser = PDFParser()

parser.set_ocr_backend(TesseractOCR()) # 注入 Tesseract OCR

data = parser.parse('image_based.pdf')

```

  1. 多页PDF自动合并:跨页交易表自动识别(按 Y 坐标分组、按 X 坐标排序列)

添加新解析器

  1. scripts/parsers/ 目录创建新的解析器文件
  2. 继承 BaseParser
  3. 实现 parse()detect_format() 方法
  4. scripts/core/parser_factory.py 中注册

输出文件格式

BIPV5 Excel模板结构

模板文件: assets/template/YYBIPV5_banktransaction.xlsx
Sheet: 银行流水处理
├── Row 1-3: 模板说明
├── Row 4: 英文字段名 (id, accentity_code, bankaccount_account, ...)
├── Row 5: 空行
├── Row 6: 中文字段名 (*银行账号, *本方交易流水号, ...)
├── Row 7-9: 空行
└── Row 10+: 数据行

目录结构

BIPPI-imp-trm-accstmt/
├── SKILL.md                    # 技能说明文件
├── scripts/
│   ├── main.py                 # 主入口
│   ├── core/
│   │   ├── data_structures.py  # 数据结构定义
│   │   ├── parser_factory.py   # 解析器工厂
│   │   ├── mapper_factory.py   # 映射器工厂
│   │   ├── cosine_similarity.py # 余弦相似度工具
│   │   ├── currency_map.py     # 币种代码映射
│   │   └── template_manager.py # 模板文件管理器(本地查找+自动下载)
│   ├── parsers/
│   │   ├── base_parser.py      # 解析器基类
│   │   ├── mt940_parser.py     # MT940解析器
│   │   ├── excel_parser.py     # 国内银行Excel解析器
│   │   └── pdf_parser.py       # 国内银行PDF解析器(文本+可插拔OCR)
│   ├── mappers/
│   │   ├── base_mapper.py      # 映射器基类
│   │   ├── _xls_template_helpers.py # xls模板写入辅助
│   │   ├── bipv5_mapper.py     # BIPV5映射器
│   │   ├── eas_yxh_mapper.py   # 金蝶云星瀚映射器
│   │   ├── fingard_mapper.py   # 保融ATS映射器
│   │   ├── nstc_mapper.py      # 九恒星司库映射器
│   │   └── yyncc_mapper.py     # 用友NCC映射器
│   └── mappings/
│       └── mt940_to_bipv5.json # MT940到BIPV5映射配置
├── assets/
│   └── template/               # 5 个目标系统的导入模板
│       ├── YYBIPV5_banktransaction.xlsx
│       ├── eas_yxh_banktransaction.xlsx
│       ├── fingard_banktransaction.xls
│       ├── nstc_banktransaction.xls
│       └── yyncc_banktransaction.xls
├── references/
│   ├── currency.md             # 币种代码参考
│   └── User Guide - Exporting Data in SWIFT MT940 Format[1].pdf
└── evals/
    └── evals.json              # 测试用例

常用命令

# 单文件转换(输出到输入文件同目录)
python scripts/main.py input.xlsx
python scripts/main.py input.pdf

# 单文件转换(指定输出路径)
python scripts/main.py input.xlsx -o output/BIPV5_output.xlsx
python scripts/main.py input.pdf -o output/BIPV5_output.xlsx

# 批量转换(每个文件单独输出到输入目录)
python scripts/main.py --batch -i ./input_dir

# 批量合并(输出到输入目录)
python scripts/main.py --merge -i ./input_dir

# 批量合并(指定输出文件)
python scripts/main.py --merge -i ./input_dir -o ./output/merged.xlsx

依赖要求

  • Python 3.8+
  • openpyxl
  • pandas
  • scikit-learn (用于余弦相似度匹配)
  • pymupdf (PyMuPDF,用于PDF文本提取)
  • pillow (PIL,用于OCR图片处理)

安装依赖:

pip install openpyxl pandas scikit-learn pymupdf pillow

如需OCR支持图片型PDF(可选):

pip install pytesseract
# 还需要安装系统级 Tesseract:Windows 从 https://github.com/UB-Mannheim/tesseract/wiki 下载并安装
# 安装中文语言包(chi_sim),然后在 PDFParser 中注入:
#   parser.set_ocr_backend(TesseractOCR())

PDF处理已知限制

  1. 浦发银行对账单(英文+中文混合版式):当前通用启发式无法准确解析,列头散布在多 Y 位置。建议先用 Adobe/PDF转Excel工具预处理。
  2. 强加密PDF:受密码保护的PDF需先解密。
  3. 扫描型PDF:默认未启用OCR,需安装Tesseract并注入OCR后端。
  4. 跨页表格:当前已支持基础的多页合并,但极端情况下表头只出现在第一页。

错误处理

错误代码说明处理建议
--------------------------
E001无法识别文件格式检查文件是否为有效的MT940/Excel/PDF格式
E002解析失败检查文件内容是否符合规范
E003必填字段缺失检查映射配置是否完整
E004日期格式错误检查日期字段格式配置
E005金额格式错误检查金额字段格式配置
E006映射配置错误检查JSON配置文件语法
E007输出目录不存在创建输出目录
E008PDF无可提取文字且未配置OCR安装Tesseract OCR并注入后端,或预转换PDF为文本型
E009PDF页面无文字层且无图片检查PDF是否有效

扩展指南

添加新的银行对账单格式

  1. 创建新的解析器类继承 BaseParser
  2. 实现 parse()detect_format() 方法
  3. 创建对应的映射配置文件
  4. parser_factory.py 中注册

添加新的目标系统

  1. 创建新的映射器类继承 BaseMapper
  2. 实现到新系统的字段映射
  3. mapper_factory.py 中注册
  4. 创建对应的目标模板文件

接入新的OCR后端

  1. 实现 OCRBackend 接口的 image_to_text 方法
  2. 通过 PDFParser.set_ocr_backend(your_backend) 注入
  3. 适用于:百度OCR、阿里云OCR、腾讯云OCR、PaddleOCR等

版本历史

共 3 个版本

  • v1.0.3 优化skill.MD 当前
    2026-06-09 23:45 安全 安全
  • v1.0.2 修正描述内容
    2026-06-05 12:05 安全 安全
  • v1.0.0 Initial release
    2026-06-05 11:12 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,353 📥 317,895
security-compliance

Skill Vetter

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

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 323,937