序.
这两天帮朋友处理考勤数据,存储在Excel表格中,在网上看了些关于VC/MFC操作Excel文件的资料,结合下面的实际需求做了个小软件。由于现学现用,测试能完成功能后,写此篇博文留待以后自己需要的时候在看看,有遇到这方面需求的朋友也可以参考下,如果有什么问题的话我们可以互相交流学习一下。
程序中主要使用了http://www.codeproject.com/KB/database/cspreadsheet.aspx 上的CSpreadSheet类,关于该类大家可以自己去了解下,简单可用。
一、需求
目前,集团的考勤系统只能机械地记录员工打卡的日期和时间(如表1),而对于员工打卡时间是否正常(迟到或早退)、应打卡而未打卡的情况却没有记录,因此,希望借助别的程序或软件来对考勤数据进行处理,得到我们想要的考勤结果。
表1:考勤原始数据
××部门 | 张三 | 2011-7-18上午08:10:53 |
××部门 | 张三 | 2011-7-19上午 08:12:31 |
××部门 | 张三 | 2011-7-19上午 11:51:01 |
××部门 | 张三 | 2011-7-19下午 02:47:10 |
××部门 | 张三 | 2011-7-19下午 06:12:13 |
××部门 | 张三 | 2011-7-21上午 08:25:32 |
××部门 | 张三 | 2011-7-21上午 11:51:17 |
××部门 | 张三 | 2011-7-21下午 12:45:59 |
××部门 | 张三 | 2011-7-21下午 05:12:19 |
我们希望得到如下表(表2)所示的考勤结果
部门 | 姓名 | 日期 | 上午上班 | 上午下班 | 下午上班 | 下午下班 |
××部门 | 张三 | 2011-7-18 |
| 未打卡 | 未打卡 | 未打卡 |
××部门 | 张三 | 2011-7-19 |
|
|
|
|
××部门 | 张三 | 2011-7-20 | 未打卡 | 未打卡 | 未打卡 | 未打卡 |
××部门 | 张三 | 2011-7-21 | 迟到 |
|
| 早退 |
关于设置方面,我们希望:
1、我们可以设置上、下班时间范围,程序根据设定的时间范围进行筛选判定。
2、我们可以设置周六、周日、节假日日期,程序可以过虑这些日期,其它日期均作为考勤日期。
二、软件界面及使用方法
step1. 设定年月,默认是当前系统时间的年月,填好后按下“设定年月”按钮;
step2. 设定星期与节假日,当step1后系统会自动勾选设定年月的星期六、日,如果你公司只星期日休息,你需要手动去除所有周六的勾选,节假日需要手动勾选,总之所有未勾选的均计入考勤,然后点“设定星期与节假日”按钮;
step3. 每天的工作时段设置,设置好后按下“确定”按钮;
step4. 点击“打开原始考勤数据文件...”按钮,选择当前目录里的Excel文件,如果你的第一个sheet重命名了必须改名为"sheet1",再建个Excel文件“处理后的考勤结果.xls”;
step5. 点击“处理原始考勤数据”按钮,等待处理完成,即可到“处理后的考勤结果.xls”看处理后的结果了,每次从新运行的时候把“处理后的考勤结果.xls”sheet1内容全部删除。
三、源代码下载地址: