算考勤
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ebf2de1c/calculate。
技能介绍
先解决手工算工时的问题
从打卡记录 Excel 中自动计算每人每日工作时长,并按公司考勤规则拆分上午、下午和加班工时。适合处理类似 07:36外勤\n11:04 \n12:25 \n21:04 的多行打卡数据,避免手工在表格里逐个判断时间、进位和汇总。输入文件保持原样,结果写入新文件。
技能如何工作
核心流程分两步:先用 openpyxl 读取 xlsx,确认人员数据从第 5 行开始、列 A 为姓名、列 G 起为每日打卡记录,日期列从第 4 行表头识别;再调用 scripts/calculate_attendance.py,传入输入文件路径和输出文件路径。脚本内置以下规则:
- 上午按 7:30–11:00 计算,第一卡到末卡,不超过 7:30/11:00,半小时进位(余 >20),上限
3.5h。 - 下午按 12:30–17:00 计算,从 12:30 到下午末卡,不超过 17:00,半小时进位,上限
4.5h。 - 17:00 后计加班,超出分钟除以 30,余数 >20 则进位。
- 午间区智能分配打卡时间;总打卡次数少于 2 显示
-;上午或下午仅 1 次打卡时对应时段为0。 - 迟到、早退不单独设规则,直接体现在实际工作时长中。
输出会在每人数据行下方插入一行,列 A 标注 “当天时长”,该行使用浅黄色底色 #FFF2CC;列 G 起按日期填入 11.5、8.0 或 -,数字格式为 0.0。
适用边界与注意点
它适合表头结构稳定的考勤表,并依赖 openpyxl。不要修改原始文件;结果应写入新的输出文件。若原始表中有中文,脚本用 str(cell.value) 处理编码。它不做排班、审批或异常考勤判定,漏打卡、补卡、调休等仍需先整理成打卡记录。
使用场景
- HR 拿到含外勤、午间和晚间打卡的 xlsx,需要逐人计算上午、下午和加班工时。
- 考勤员需要在每人打卡数据下方插入“当天时长”行,并保持原始文件不变。
- 团队处理同一份考勤表,希望按公司规则自动处理午间分配、半小时进位和上限。
- 数据维护人员需要从第 5 行开始读取人员数据,从第 4 行表头识别日期列。
适合人员
- 负责月度考勤的 HR,需要把打卡记录按公司规则折算成可核对的工时。
- 处理工时表的考勤员,需要在人员数据下方生成当天时长并区分加班。
- 维护考勤模板的行政人员,需要保证原表不被修改并生成独立结果文件。
- 需要批量核对 Excel 打卡数据的团队成员,希望脚本统一处理进位和异常打卡。