结合近期两个RPA机器人的项目,不同的使用场景,需要灵活运用的两种Excel使用方法。
1. 使用应用程序/浏览器
-NApplicationCard
在UiPath.UIAutomation.Activities依赖包中,我使用的是22.4.5版本,如下图
使用应用程序/浏览器,可以打开电脑上任何的应用程序或者浏览器,当然也包含Excel。
这种方式使用方便,也可以使用UiPath自带的录屏功能来生成RPA代码。
优点:
1) 不占用目标进程,如在一个流程中,可以多个节点同时使用同一个Excel文件,因为它只是用程序打开Excel,而非占用,其它流程节点同样可以打开使用。
2) 不限定应用程序,即可以打开Excel程序,也可以打开浏览器等。
3) 可视化选取目标程序元素
缺点:
1) 仅仅是使用程序,不能进行修改,如打开Excel,只能模拟点击Excel的内容、图片、附件,但不能修改当前Excel,不适用于既要操作Excel,又要修改保存Excel的场景。
2) 针对部分组件的使用有目标程序范围的限制,如同版本(22.4.5)中的点击组件,只能在选定的目标程序中模拟点击元素,不能随意点击电脑屏幕中的元素。且单击组件只能在使用应用程序/浏览器中使用。如下图
如果改为较低版本,如20.4.2,则点击没有限制,可以随意模拟点击屏幕中任何可点击元素,如下图
3)没有对应的Excel读写操作,在使用应用程序/浏览器中,要读写Excel,则应该使用工作簿(workbook)相关的组件
2. 使用Excel文件-ExcelApplicationCard
在UiPath.Excel.Activities依赖包中,使用版本:2.16.0
使用Excel文件组件,必须被包含在Excel流程作用域(ExcelProcessScopeX)中,如下图
从图中可以看出,这两个组件均是针对Excel文件的使用。可以对Excel的启动方式、宏设置、文件密码、是否只读、是否保持Excel文件打开、是否保存更改、是否如果不存在则进行创建等多属性的灵活配置。
使用Excel文件,适用于只操作Excel,或者即操作又可以修改保存的使用场景。
优点:
1) 针对Excel的读取单元格、写入单元格都有自带的组件,不需要额外使用工作簿组件。
2) 可以对Excel灵活的进行读、写、更改等操作。
3) 使用Excel文件组件内,也可以增加多种其他组件,如分配、写入行、遍历循环、if条件、快捷键等等
缺点:
1) 会占用打开的Excel进程,即仅该流程节点可以操作该Excel,如果在该节点前有其他组件打开了该Excel,则使用Excel文件组件时会报错:请确保Excel程序正常打开或没有其他进程占用。
3. 系统-文件-工作簿
工作簿组件下有如下操作Excel相关的组件
工作簿组件适用于在其他流程组件中嵌入Excel读取的操作,如某个流程执行到某个节点,需要从Excel文件中读取信息,作为流程下一步操作的数据,这时如果使用应用程序/浏览器,或者使用Excel文件去操作Excel,则会使RPA代码复杂化,流程节点变多。
所以这时使用工作簿则更为灵活,因为不需要打开Excel文件,直接就可进行读取
如图可以看出,只需要指定Excel路径,sheet名称,需要读取的单元格,再将结果配置在单元格内容中(可以定义变量来获取结果)
以上三种针对Excel的操作,仅仅是我本人在几个RPA项目中通过实践和不断尝试得来的总结,并非标准,仅为个人浅谈,如有不严谨的地方,欢迎大家评论加以指正,共同学习。