今天讲解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",获取出来的数组,没有空元素,直接就是整列有数据的。