UiPath如何读取文件夹中所有文件(遍历文件夹)
应用案例:从系统/邮件下载若干数据,将下载的数据保存在特定文件夹后,继续做文件合并动作
举例:D盘文件夹“Folder”中有4个excel文件,需要用UiPath做简单的文件合并动作,新合并文件命名为“new file”。
说明:
1.读取文件夹中所有文件的个数,需要定义数组变量,然后建立循环。
2.循环中做excel文件合并,可以选择两个activity “append range”&“write range”其中之一。
append range:不覆盖表格中已存在的资料行。
write range是从指定行开始写入。
首先我们来看,如何取得文件夹中的所有文件,利用assign如下:
Value设置为Directory.GetFiles("D:\Folder")
doc_directory是一个变量,类型为String[]
通过这样的设定后,doc_directory就是包含了文件夹中所有文件名称的数组。这里如果想要知道文件个数,用write line加“doc_directory.count.toString”就可以得知这个文件夹中有多少个文件。
如下:
接下来需要合并所有的文件,最好的方法是“循环”,这里选用For each循环方法:
这样就可以做到将excel中文件做合并了。
小提示:
使用read range时,UiPath默认是选中“add headers”选项的,如果勾选,表示数据含标题行,写入append range时无“add headers”选项,所有得出的合并表格new file会缺失标题。解决这个问题的方案是,对新增的deta table先做标题行的定义再加写入的动作。
使用read range时,如果不勾选“add headers”,表示数据无标题,用append range写入时,会将每个文件中的标题行都写入new file。当然,继续处理,用remove duplicate rows就可以修复这个问题啦。
同样的问题可以有不同的解决方案,至于选用哪种取决于大家对UiPath的熟悉程度,笔者每次尽量用不同的activity做范例,以利于大家的更快进步。
4. 如果大家有更感兴趣的话题,在公众号直接留言给我,我会优先处理。
如果对您有帮助,欢迎点赞支持。更欢迎您分享朋友圈,分享给更多有需要的人。