问题表现为:

源数据文件可以确认正确,但是通过openpyxl进行大规模处理的时候从某一行开始大量丢失计算结果,导致差额非常巨大。数据举例如下:

预期值

28XXXXXX 28XXXXXXXX 2026-07-31 3570 ADDITIONAL 4292
28XXXXXX 280001401440 2026-07-31 3540 ADDITIONAL 4292
28XXXXXX 280001401440 2026-07-31 5200 RECURRING 35768
28XXXXXX 280001401440 2026-07-31 3240 ADDITIONAL 5722.88
28XXXXXX 280001401440 2026-07-31 3370 ADDITIONAL 3505.26
28XXXXXX280001401440 2026-07-31 3310 ADDITIONAL 178.84
28XXXXXX 280001401440 2026-07-31 3440 ADDITIONAL 160.96
28XXXXXX 280001401440 2026-07-31 3210 ADDITIONAL 2861.44
28XXXXXX 280001401440 2026-07-31 3340 ADDITIONAL 718.36
28XXXXXX280001401440 2026-07-31 3270 ADDITIONAL 178.84
28XXXXXX 280001401440 2026-07-31 5210 RECURRING 35768

实际值

28XXXXXX 28XXXXXXXX 2026-07-31 3570 ADDITIONAL 4292
28XXXXXX 28XXXXXXXX 2026-07-31 3540 ADDITIONAL 4292
28XXXXXX 28XXXXXXXX 2026-07-31 5200 RECURRING 35768
28XXXXXX 28XXXXXXXX 2026-07-31 3340 ADDITIONAL 3
28XXXXXX 28XXXXXXXX 2026-07-31 5210 RECURRING 35768

问题的核心在于源文件中有一些列的结果是通过公式计算出来的,所以:

解决:

把 run_billing_id_update 里打开 billing 文件的方式改为 load_workbook(billing_path, data_only=True)。这样加载时公式会被物化为缓存计算值,另存 _IDupdated 时写成静态数字,后续 make 步骤就能正确读到