文丨鄂攀
今天讲解 UiBot 中关于里面数据处理的一些使用。
为什么讲数据处理呢?是因为在 SAP 流程自动化中,或者客户做信息配置表的时候,发现有些对数据处理可能认识比较少的 RPA 工程师,在数据量非常大的情况下,依然去循环 Excel 里面的单元格数据,来做批量处理。
这样做的后果是,在数据量非常大的情况下,速度会很慢(相当于单调回归),而如果放在数组或者字典(唯一性)中做批量处理,那么速度至少提高十倍以上。
数组
假如我们想从 Excel 中取出数量不固定的若干个银行账户,并把它放在数组里面,进行循环处理。
第一步:打开 Excel
打开之前,先配置文件路径。这个文件路径需要灵活处理,就像我之前讲信息配置表的处理一样,获取桌面文件存放的路径。(UiBot 可视化视图)
第二步:获取好路径以后,配置文件完整路径。
这样就得到一个,不会因为更换电脑,再修改文件路径的灵活路径了。
第三步:打开 Excel,去获取账户信息所在的列,放在数组中。
第四步:需要通过 UiBot 控件中数组的过滤功能,去掉列名。
这样就得到一个纯银行账号的数组,去对数组进行循环处理就 OK 了。
(UiBot 源码视图)
========Start========
dim sRet = “”
dim temp = “”
sRet = Sys.GetSystemPath(“desktop”)
dim 文件路径
dim objExcelWorkBook = “”
dim arrayRet = “”
dim arrRet = “”
TracePrint(sRet)
temp = “\UiBot 学习指南 \RPA_Config.xlsx”
文件路径 =sRet&temp
TracePrint(文件路径)
objExcelWorkBook = Excel.OpenExcel(文件路径,true)
arrayRet = Excel.ReadColumn(objExcelWorkBook,”Sheet1″,”A1″)
TracePrint(arrayRet)
arrRet = Filter(arrayRet,” 银行账号 ”,false)
TracePrint(arrRet)
========End========
然后再说另一种数据处理。
有一些工程师在从外部获取大量数据存放在 Excel 里面的时候,通常喜欢在循环的时候,把数据一个一个放入单元格里面,这个问题和上面说的一样,速度效率会变得极低。
请看以下处理。
首先定义一个数组,给他赋值一个需要的列名。
然后循环处理把需要的数据依次赋给它。
最后再把数组一次性储存在 Excel 里面就 OK 了。
(UiBot 源码视图)
========Start========
dim 数组
dim objExcelWorkBook = “”
数组 =[“ 序号 ”]
For i=2 To 10
数组[i]=i
Next
TracePrint(数组)
objExcelWorkBook=Excel.OpenExcel(“C:\Users\Pande\Desktop\UiBot 学习指南 \RPA_Config.xlsx”,true)
Excel.WriteColumn(objExcelWorkBook,”Sheet1″,”B1″, 数组,false)
========End========
特别说明:
UiBot 控件中读取列,在对数据进行读取的时候,根本不用顾及最后一个数据在第几行,直接写那一列的第一个单元格就行,比如 ”A1″, 获取出来的数组,没有空元素,直接就是整列有数据的。
赶快用 UiBot 试试效果吧
UiBot 下载地址:https://www.uibot.com.cn/down
UiBot 学习地址:https://www.uibot.com.cn/study
UiBot 命令手册地址:https://docs.uibot.com.cn/