问题描述:
3-1班的同学每个月都要进行一次月考,而其考试信息都被记录在案,
今天语文老师王老师突然想了解一些同学的考试信息,以此对他们进行分析
查询表(对应程序第一个读取)
这是王老师希望你实现的,根据日期和姓名找到同学的语文成绩
数据表(对应程序第二个读取)
这是基础数据表,记录了三次月考的全部信息
输出结果:
结果表(语文列信息已经根据处理填写完毕)
具体实现:
整体构架:
1.读取数据,将其转化为datatable
2.使用for each row 对每一行数据进行处理(是指王老师想要的那张表)
一、读取数据(ReadRange程序)
刚开始读取数据时,都是不加表头,但随着对datatable组件的了解,
越来越体会到加表头的快捷和方便,所以一般没有特殊要求,都会使用AddHeaders
二、循环处理(for each row程序)
分为三步
(1)从王老师的表中读取日期和姓名,要根据其信息进行处理
这里面有数据格式的问题,excel对于日期识别的是日期格式,对于分数识别的是double,而Uipath在写入数据时一律是String,
因此需要对格式进行转换
(2)对数据进行筛选
(3)写入表格
整个程序
本次想分享的重点就是如何对数据进行筛选
这次的筛选存在两个条件(日期和姓名)
首先根据一个条件进行一次筛选
再根据另一个条件进一步细化
首先筛选的是姓名,如果这行数据的姓名和我想要的姓名相同,就将其保留,最后结果存入一个新的datatable(dt_Table)
然后再将符合标准的信息输出,Output Columns可以设置你想输出的列
然后使用Lookup Data Table
LookupValue:这次的筛选条件--日期
Lookup Column:想要与其匹配的行
Target Column:想要输出的信息的行
CellValue:输出其单元格信息(这就是我们想知道的分数信息)
这样就实现了全部功能了。
Others:
博主也尝试了用一步直接实现,但是执行完却没有结果输出,不知道是因为什么原因。