问题表现为:源数据文件可以确认正确,但是通过openpyxl进行大规模处理的时候从某一行开始大量丢失计算结果,导致差额非常巨大。数据举例如下:预期值28XXXXXX 28XXXXXXXX 2026-07-31 3570 ADDITIONAL 429228XXXXXX 280001401440 2026-07-31 3540 ADDITIONAL 429228XXXXXX 280001401440 2026-07-31 5200 RECURRING 3576828XXXXXX 280001401440 2026-07-31 3240 ADDITIONAL 5722.8828XXXXXX 280001401440 2026-07-31 3370 ADDITIONAL 3505.2628XXXXXX280001401440 2026-07-31 3310 ADDITIONAL 178.8428XXXXXX 280001401440 2026-07-31 3440 ADDITIONAL 160.9628XXXXXX 280001401440 2026-07-31 3210 ADDITIONAL 2861.4428XXXXXX 280001401440 2026-07-31 3340 ADDITIONAL 718.3628XXXXXX280001401440 2026-07-31 3270 ADDITIONAL 178.8428XXXXXX 280001401440 2026-07-31 5210 RECURRING 35768实际值28XXXXXX 28XXXXXXXX 2026-07-31 3570 ADDITIONAL 429228XXXXXX 28XXXXXXXX 2026-07-31 3540 ADDITIONAL 429228XXXXXX 28XXXXXXXX 2026-07-31 5200 RECURRING 3576828XXXXXX 28XXXXXXXX 2026-07-31 3340 ADDITIONAL 328XXXXXX 28XXXXXXXX 2026-07-31 5210 RECURRING 35768问题的核心在于源文件中有一些列的结果是通过公式计算出来的,所以:run_billing_id_update 用 load_workbook(billing_path)(没加 data_only)打开文件——openpyxl 保留公式字符串,但丢弃 Excel 已算好的缓存值。另存为 _IDupdated.xlsx 时,公式被写回但没有缓存计算值。run_billing98_make 用 data_only=True 读取 _IDupdated——公式单元格因为没有缓存值,全部返回 None → 这些列被当成空值 → 整行社保数据被跳过。解决:把 run_billing_id_update 里打开 billing 文件的方式改为 load_workbook(billing_path, data_only=True)。这样加载时公式会被物化为缓存计算值,另存 _IDupdated 时写成静态数字,后续 make 步骤就能正确读到