Uipath 对Excel中重复的行进行筛选解决方案以及DefaultVaule方法的使用

对数据的筛选使用“Filter Data Table”这个活动可以对每一行或者每一列的值进行筛选。但是好像做不到对重复的列进行筛选。本篇文章主要针对单一行列的筛选,如果想要删除重复行,直接使用"Excel"-"Processing"-"Remove Duplicates Range"活动。

一开始博主想通过“For Each”来遍历循环,判断新建的表中是否存在这一行数据,存在丢掉,不存在丢弃。但是觉得这种方法太“笨”了,所以想在互联网上找一下解决方法,但似乎没有找到一种简短有效的方法:vba以及Linq(这两种方法博主都已经试过了,应该是可行的,只不过过程中出现错误没有继续进行下去,有定力的小伙伴可以去试一下,等我有时间了我也会试的,成功的小伙伴可以交流一下经验! T T)

然后就去爬梯子去外面找了一下,发现了一个DataTable一个很棒的方法DefaultVaule,可以筛选Excel中的重复行,下面博主通过一个实例给大家演示一下:

例表长这个样子

1.首先通过“Read Range”获取需要读取的Excel,并建立数据类型为“DataTable”类型的变量,在属性勾选“AddHeaders”

 

2.新建类型为“DataTable”输出变量“DT”,将 步骤1 输出的变量,通过使用“Assign”对新建的变量使用DefaultValue方法进行赋值。表达式为【DT=DT_DataSource.DefaultView.ToTable(True,"姓名")】:【True】表示对重复的值进行筛选,【“姓名”】表示筛选列的列名。来完成对“姓名”列的重复值筛选。如果需要对其他列进行修改,只需要添加列名就可以了,例如:【DT=DT_DataSource.DefaultView.ToTable(True,"姓名","成绩")】,这是对“姓名”和“成绩”列两列的重复值筛选....以此类推可以完成想要的去重的列进行操作

3.将筛选后的数据“DT”通过“Write Range”写入到新的表中

 

运行一下,看下最后的结果:

 

但是此种方法只能筛选单列,不能将此行其他列的结果筛选过去,如果想删除一整行而不是单纯对某一列筛选重复值,还是使用"Excel"-"Processing"-"Remove Duplicates Range"来筛选吧

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值