当前位置:首页>python>写了个Python脚本帮人事部自动核对工资单,她们说要请我吃饭

写了个Python脚本帮人事部自动核对工资单,她们说要请我吃饭

  • 2026-09-03 07:01:09
写了个Python脚本帮人事部自动核对工资单,她们说要请我吃饭

人事部的小王找到我的时候,手里抱着一摞打印纸,脸上挂着那种快被逼疯的表情。她说每个月工资单核对太痛苦了,几百号人的数据要一个个对,眼睛都快看瞎了。

我看了眼她的表格,发现都是重复劳动。加班费个税社保公积金,这些数据明明系统里都有,人工核对纯属浪费时间。我告诉她这活我能用代码搞定,她半信半疑。

我需要解决的问题很简单。拿到人事给的Excel工资单数据,再拿到财务系统导出的正确数据,让代码自动比对差异。核心思路是逐行读入两个表格,对比每个员工的每条薪资项目。

先写数据读取部分。我用了pandas库,这玩意处理表格很方便。代码长这样:

import pandas as pd
salary_input = pd.read_excel('人事工资单.xlsx')
standard_data = pd.read_excel('财务系统导出.xlsx')

接下来做对比。我选了员工编号作为匹配键,因为这是唯一标识。然后遍历每个字段,哪个格子数值不一样就把该员工编号和错误项目记录到错误列表里。代码大概二十行,拼了一个对比函数。

遇到一个坑。有些单元格是数字,有些是字符串,直接比会报类型错误。我加了强制转换,把所有值都转成字符串再比对,这样就不会漏掉格式差异。还有个问题,财务系统里明明该显示空值的单元格,人事表里写了0,这种也算差异。我写了条件判断,把空白和0分开处理。

跑完第一版测试,发现内存占用有点高。几百号人的数据其实不大,但我在循环里反复读文件,效率低。改成一次加载全部数据到字典里,用字典的key快速定位员工,对比速度从几秒降到零点几秒。

输出结果要直观。我让代码生成一个标记过的Excel,差异单元格用红色底色标出来,绿色底色表示正确。这样人事部看一眼颜色就知道哪里有问题。她们不用技术工具,但颜色总能看懂。

小王请我吃食堂的时候说起一件事。有个老员工当月调岗,工资项目变了,人工核对根本发现不了。我的脚本把调岗前后的工资项目差异也标记出来了,这份功劳被她们主管记了一笔。

后来我还加了个功能。如果财务系统数据更新了,脚本能自动重新跑一遍,生成新的报告。不用人事部手动重新操作,她们只需要双击一下批处理文件。真正实现了一键核对。

现在这个脚本已经用了三个月,没出过漏子。小王说她们部门现在每月至少省出两天时间,用来做数据分析和员工关怀。她们主管问能不能推广到其他分公司,我说可以,只要把文件路径改成变量就行。

代码托管在公司内部服务器上,加了密码保护。人事部要改文件目录或者新增比对项目,我远程改一下配置文件就行。上周她们部门聚餐,硬是拉我过去,每人敬了我一杯果汁。

最新文章

随机文章