艺赛旗 RPA9.0全新首发免费下载 点击下载
http://www.i-search.com.cn/index.html?from=line1
一、需求描述:
1、需求为:
将一个月的员工打卡记录,写进Excel,并在状态一列,添加员工是正常打卡,还是迟到与早退。
2、判断状态规则:
当日08:30前上班,17:30后下班为正常;
3、源文件:
为dat格式,用Notepad++ 打开如下图所示:
信息中有员工工号,打卡日期及时间
4、最终输出格式:
按照如下图所示,将打卡数据,通过工号匹配另一张员工信息表,得到员工姓名及所属部门,最终写入Excel,格式如下:
换个思路做流程
二、思路及 poc 实现
1、需求分析;
首先需要,将dat格式的打卡数据取出,过滤员工同一天同时间重复打卡数据;再匹配 员工信息表,得到对应的员工姓名
及所属部门,最后通过规则判断该员工打开的状态,写入输出总表。
其中,判断状态规则,按照上午8:30之前打卡为正常,超过及为迟到;下午5:30之后打开为正常,下午在此之前打卡则为
早退。
2、难点分析:
a、从dat格式读取,无难度,如同TXT文本一样读出就可以;
b、过滤同一员工,同一时间段重复打卡。若在同一分钟内打多次,很容易过滤,若间隔1分钟及以上,难度增加;
c、通过打卡数据中员工工号匹配姓名及所属部门,较容易,可以使用设计器 merge 模块进行连接,前提是打卡数据提取出
来后下入Excel;反之,需使用循环去匹配;
d、判断员工打卡状态,按照常规思维,是切割出时间,再进行循环数据,判读出其状态;
三、重点!!!
此贴为经验贴,如标题,我们换个思路去实现。
注意,仅仅是经验与思路,若实施,需优化。
我们准备一个模板文件,为xlsx格式,中有两个sheet。
第一个sheet作用为:过渡,是将dat格式的打开数据,经过一番处理后,写入。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019071616200464.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDQ0NzY4Nw==,size_16,color_FFFFFF,t_70第二个sheet:为本帖的重中之重,如下图所示:
换个思路做流程
相信眼尖的小伙伴已经从上图看出来了。对的,我在第三列的状态中,写了一个函数,并格式化了整列。这样的好处是什么,当我们在时间这一栏填写数据后,状态这一栏,就自动显示了。这样执行的效率,与开发的时间就大大的减少了。
? ? ? 为防止描述的不够详细,会将工程及用到的文档上传。
这里,并不是鼓励小伙伴们都用这样的方法去解决。只是提供一个思路,而本人也一直认为,一个好的思路能大大的减少我们开发的时间,并在效率上有着明显的提升。而本帖中,我实现的思路主要就在配置 Excel 模板这块。后续基本都是一些平时经常用到的方法。
当然,也会有一些更好的思路,逻辑,只是短时间内可能并不会被想到,只能在项目中慢慢成长与积累了。