多家银行流水提取自动化(附源码)

多家银行流水提取自动化(附源码)

多家银行流水提取自动化(附源码)-寻找资源网
多家银行流水提取自动化(附源码)
此内容为付费阅读,请付费后查看
5
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
seekresource@163.com
1919588043
QQ1919588043
寻找资源网
微信小店:寻网百货
付费阅读
商城已上线,快去看看吧!

一键提取 多家银行流水并合并为统一格式 Excel 的 Python 工具。

📌 一、项目背景

财务每月需要从多家银行网银导出账户流水(.xls / .xlsx),但这些文件格式各不相同:有的账号藏在表头单元格,有的账号就在数据列里;有的用”贷方/借方”两列表示收支,有的只有”借贷标志+发生额”;中行甚至把人民币、美元两个账户塞进同一个文件。

人工打开一个一个复制、对齐列、补空值、转文本格式,既慢又容易错。

本项目把”读取 → 清洗 → 统一 → 合并”全流程自动化,输出一张标准 8 列流水总表,可直接用于会计核对、银企对账或导入财务系统。

🏦 二、涉及的银行与命名规则

工具按文件名关键词自动识别银行,无需配置。当前支持 8 家:

银行名称
匹配关键词
账号提取方式
金额规则
招商银行
招行
数据列「账号」
贷方 − 借方
江苏银行
江苏

(非”江苏银行”)
表头第 1 行第 2 列单元格
借贷标记定正负
中国银行
中行
文件内多账户块动态切片
来/往账取对应对手,金额带正负
中信银行
中信
数据列「交易账号」
贷方 − 借方
建设银行
建行
表头第 4 行第 2 列单元格
贷方 − 借方
工商银行
工行
数据列「本方账号」
借贷标志定正负(贷正借负)
兴业银行
兴业
数据列「账号」
贷方 − 借方
浦发银行
浦发
表头单元格(上海版/苏州版表头行不同)
贷方 − 借方

命名规则(重要)

    • 文件名只需包含对应关键词即可自动识别,可自由加城市前缀、账号后缀、序号:
      • XX中行XX.xlsXX招行XX.xlsxXX建行XX.xlsXX江苏XX.xls
      • XX招行XX.xlsxXX浦发XX.xlsXX工行XX.xlsx
    • 识别顺序:先判 中行 → 再判 江苏 → 最后遍历其余关键词。
    • 新增银行只需在 BANK_CONFIG 加一条配置,文件名带该关键词即可。

📋 三、可以提取的内容

所有银行统一输出 8 列,顺序固定:

列名
说明
特殊处理
银行账号
本行对公账号
强制文本格式,杜绝科学计数法
交易日期
交易发生日
统一为 年/月/日(YYYY/MM/DD)
交易金额
收支金额
收入为正、支出为负(按借贷标志/借贷方向计算)
对方名称
交易对手户名
如果为空 → 填充公司名
摘要
业务摘要
取各银行对应摘要/用途列
对方账号
交易对手账号
如果为空 → 填充本行银行账号;强制文本格式
余额
交易后余额
清洗为数值
银行名称
银行中文名
用于排序与筛选

统一业务规则

  • 对方名称为空 → 一般如结息、扣费等填入 当前公司名称
  • 对方账号为空 → 填入当前行银行账号
  • 江苏银行自动删除最后一行的 ----- 的分隔尾行
  • 中行一个文件含多个账户(人民币 / 美元),逐账户块提取,来账取付款人、往账取收款人为对方

🎨 四、设计实现与样式结果

架构:配置驱动 + 通用流水线

BANK_CONFIG(各银行配置)
        │
        ▼
process_generic(通用清洗:读表→重命名→算金额→清日期→填空值→文本化)
process_boc(中行专属:多账户块动态切片)
        │
        ▼
sort_result(按 银行名称→银行账号→交易日期 排序)
        │
        ▼
to_excel + openpyxl(强制账号列为文本格式 @)

输出样式结果

  • 合并为单个 extracted_bank_data.xlsx,无多余 sheet。
  • 排序结果:招商银行 → 江苏银行 → 中国银行 → 中信银行 → 建设银行 → 工商银行 → 兴业银行 → 浦发银行(改顺序只改 BANK_ORDER 一行常量)。
  • 账号列在 Excel 中显示为文本(左上角绿色小三角,不丢失前导 0、不变 3.2E+19)。
  • 日期列全部 2026/06/21 样式,可直接按时间排序筛选。

示例(账号等脱敏展示):

银行账号
交易日期
交易金额
对方名称
摘要
对方账号
余额
银行名称
3**************
2026/06/21
0.1
************
结息
3**************1
0.1
建设银行
1*************
2026/06/23
-10
**********
网银注册账户服务费
1**************0
90
工商银行

🚀 五、如何使用

1. 准备环境

pip install pandas openpyxl xlrd

2. 放入文件

把所有银行流水 .xls / .xlsx 放进脚本同级的 银行流水/ 文件夹,文件名按上面的命名规则命名。

3. 调整

  • 改银行排序:编辑文件顶部 BANK_ORDER 列表顺序。
  • 加新银行:在 BANK_CONFIG 增加一条(含 skiprowsrenameaccount 等)。
  • 改公司名/空值填充规则:编辑顶部 COMPANY 常量或 fill_counterparty()

4. 运行

python 银行流水.py

脚本会扫描文件夹、逐个识别并处理,最后打印 处理完成! 共 N 条记录,结果写入 银行流水/extracted_bank_data.xlsx

💻 六、完整代码(银行流水.py

💡 小结

把每月的流水文件丢进文件夹,跑一次脚本,30 分钟的工作量变成 10 秒钟。

看完不过瘾,那就自己发一篇吧!
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容