Uipath DataTable-FilterDataTable(筛选数据表)

如题所述

FilterDataTable(筛选数据表)活动用于在“DataTable”数据表变量中基于指定条件筛选行或列。此操作在“筛选器向导”窗口中完成,通过设置逻辑条件来保留或删除行。例如:


保留符合“运输方式”为“铁路运输”或“配送商”为“深圳市PF物流有限公司”的行数据,并将结果保存至`filterDt`数据表变量。


注意:行数据过滤时,使用该活动实现。


另外,此活动还可以用于仅保留特定列,如“城市”、“配送中心”、“分销渠道”,其余列将不在数据表中保留,结果同样保存至`filterDt`变量。


过滤列时,可选择`Remove`选项。


实战示例:读取“物流发货明细表.xlsx”文件中的“物流明细工作表”,查询配送商为“上海XJ货运服务有限公司”或“深圳市PF物流有限公司”的数据。


对比Filter(过滤)与FilterDataTable(筛选数据表):



    两者均用于数据过滤。
    FilterDataTable(筛选数据表)针对`DataTable`变量类型进行过滤,操作于Uipath内存处理。
    Filter(过滤)针对Excel文件`Sheet`数据进行过滤,类比于Excel中点击“筛选”操作。
    在新式Excel活动时,推荐优先使用Filter操作,以降低内存容量,减少循环遍历次数,提高处理性能。

FilterDataTable(筛选数据表)可通过以下几种方法替换,简化代码:



    使用Select方法:`需要过滤的数据表名.Select("列名名称1='*****' and 列名名称2='*****'").CopyToDataTable`。
    使用DataTable扩展方法AsEnumerable:`需要过滤的数据表名.AsEnumerable().Where(r => r("字段名").ToString="条件值").CopyToDataTable`。
    使用Linq过滤:`(From r In需要过滤的数据表名.Select() Where r("字段名").Equals("条件值") Select r).CopyToDataTable`。

关注Uipath社区群:439705897,了解更多解决方案咨询、项目实施、RPA自动化课程、助理与高级开发者认证等信息。


博客URL: blog.csdn.net/Marshalju...

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜