【RPA】使用影刀读写Excel的若干问题及解决方案
RPA是机器人流程自动化(Robotic process automation)的简称,它可以通过低代码开发方式,模仿最终用户在电脑的手动操作,创建工作流,实现工作流程的自动化。该技术起源于上世纪90年代,2015年至今进入高速发展阶段,应用链条更长,功能不断增强。“影刀”便是一款值得推荐的RPA工具。
在使用RPA创建重复性工作流应用时,通过Excel给定循环列表是一个常用的选择,本文即是在这一场景下对读写Excel操作若干问题的解决方案的记录。
Q:拾取Excel文件路径时,获取到的结果并不是文件路径,该如何处理?
A:使用【打开选择文件对话框】指令可以获得默认返回结果select_file_dialog,根据下图可以分析得出该对象包含file和pressed_button两个元素,
在Python语句块输入模式下使用select_file_dialog[0]可以获取file,即路径字符串。
Q:Excel读写驱动(引擎)应该采用哪个?
A:建议采用影刀内嵌提供的openpyxl,这是一个Python下操作Excel的库,选用它便不用考虑终端机器的Office环境,方便工作流应用的分发。
Q:如何获取准确的Excel有效列表,避免UsedRange下标超过有效区域带来的问题?
直观些描述,如下图,实际上有数据的区域只到了31行,但是Excel文件记录的已编辑区域UsedRange是到了378行。这个问题一般是由于对Excel进行增删操作后保有一些空白行引起的,熟悉Excel开发的人对UsedRange与有效行数不一致问题不应陌生。
打印一下获取到的结果列表excel_data,如下图,可见它是一个嵌套列表,对应空白行的输出为[None]
A:设置新变量,在获取Excel数据列表excel_data使用前,对它进行判断、切片处理,赋值给新列表对象lst。
在Python语句块输入模式下使用
excel_data if [None] not in excel_data else excel_data[:excel_data.index([None])]
将处理后的列表赋值给lst
Q:在lst列表中如何取出循环值?
A:根据上一个问题,可知lst是一个嵌套列表,在循环该列表时需要对每个循环项loop_item进行在处理,通过loop_item[0]取出列表中的第1个元素值进行处理。