2026-10-09 · 喵窝资源铺
钱账系列的借款侧:员工备用金借出去容易,冲回来全靠月底对账。最容易出的错不是「对不上数」,而是方向搞反——报销 4200 借款 3000,多出的 1200 是公司该退给员工的,拿去当「未还借款」催款就闹笑话了。这版脚本把报销单逐条冲抵借款,代码实跑验证,真实输出贴在下面。
测试数据:8 名员工 8 笔借款 + 9 张报销单,故意埋 7 处陷阱——王强报 4200 借 3000(退个人 1200);赵敏借 5000 只报 3000 且摘要「展会费用」(白名单外,剩余 5000 超 90 天催款);陈晨、郑飞没借过款直接报销 8000/3000;孙悦报 2600 借 2000(退个人 600);刘洋正常冲平(对照组);周洁名字带尾随空格(归一后命中);吴昊借 2300 报 1000 且未还(未清)。跑完:
BX-101 李涛 → 冲抵2000 BX-102 王强 → 冲抵3000,退个人1200 BX-103 赵敏 → 摘要「展会费用」非(差旅/备用金)类,不自动冲抵借款 BX-104 陈晨 → 摘要「设备采购」找不到本人任何借款记录 BX-105 孙悦 → 冲抵2000,退个人600 BX-106 刘洋 → 冲抵4000 BX-107 周洁 → 冲抵2500(尾随空格归一后命中) BX-108 吴昊 → 冲抵1000 BX-109 郑飞 → 摘要「招待费」找不到本人任何借款记录 借款余额:赵敏 5000 未清·超期(100天)催款;吴昊 1300 未清(86天) 核对完成: 报销 9 单 / 借款 8 笔, 异常 7 条
逐项验收:超借退个人、白名单拦截、无借款报销、超期催款、空格归一、多笔借款顺序冲抵全对出;对照刘洋零误报。边界:报销表缺列明确报错(列出缺哪些)、借款日期 datetime/字符串都能解析、坏日期字符串明确报错不静默;幂等:同输入连跑两次输出内容级一致。
| 场景 | 处理 |
|---|---|
| 报销 ≤ 借款 | 按借款日期先后逐笔冲抵,先冲早借的 |
| 报销 > 借款 | 多出部分标「个人垫付待退」——方向是公司给钱,不是催款 |
| 摘要不在白名单(差旅/备用金) | 不自动冲抵,标疑让人确认性质——招待费拿备用金冲是合规事故 |
| 找不到本人借款 | 标「无借款直接报销」,确认是否垫付报销 |
| 借款剩余未冲抵 | 超 90 天标「超期催款」,未超只标「未清」 |
| 姓名匹配 | 去首尾+内部空格后归一,防「周洁 」这类 Excel 尾随空格 |
先 pip install openpyxl。借款表列:姓名/借款日期/借款金额/用途;报销表列:单号/姓名/报销金额/摘要。运行:
python loan_bx_offset.py 借款表.xlsx 报销表.xlsx 核对结果.xlsx
不想自己摆表的格式?免费下载借款报销冲抵 xlsx 模板(借款表 / 报销表 + 一页说明),照着列名填就能跑。想要定制逻辑或对接你的系统格式?找我们定制交付。
输出 xlsx 三张表:报销冲抵明细 / 借款余额(含借款天数)/ 异常清单,直接可读。
第一版只输出「借款剩余未冲抵」,结果王强报销 4200 借 3000 这类正常垫付被记成欠款。真正的坑是:报销先冲借款、冲不完的余额才是待退个人,两个方向必须分开列——「个人垫付待退」是公司欠员工,「借款未清」才是员工欠公司,混在一张表里财务照着催款会把人得罪光。另外摘要必须过白名单:拿「招待费」直接冲「差旅备用金」,钱数是对的、性质是错的,这种只能标疑给人判断,脚本不能替财务拍板。
钱账系列:个税专项附加扣除×工资表一致性核对、社保申报基数×工资表合规核对、加班表×工资表工时对账、排班系列:换班申请链核对、合同回款×银行流水催收对账、报销单×银行流水对账。