了解Excel表格自动化
【魔像RPA初级课程】了解Excel表格自动化
本节内容
Excel自动化,即自动的操作Excel表格,实现一些简单动作过程。本章节我们将学习:
- 如何向表格内进行数据读写?
- Excel格式调整、公式计算?
- Excel组件和桌面Excel组件区别?
一、如何向表格内进行数据读写?
事先在电脑中准备一张Excel表格,表格内容如下:
1 表格数据读取
1.1 单元格值读取
- 在组件列表中找到「Excel表格」-「数据读写」-「读取单元格值」组件,拖出至主流程。 在弹出的窗口中按如下输入后点击保存。 - 选择文件: 选择需要操作的Excel文件
- 工作表名: 为- sheet1
- 读取位置: 写入- A2(也即要读取Excel文件中的单元格值)
- 将读取结果保存给: 选择- 读取的单元格值1
 
- 将「输出到控制台」组件拖出至主流程,在弹出的窗口中按如下输入后点击保存。 - 输出内容: 选择- 读取的单元格值1
 
- 点击运行。可以在运行结果区看到读取的结果 
1.2 读取整行数据
- 双击「读取单元格值」组件,在弹出的窗口读取位置栏更改写入内容。读取一行写行号,例如读取表格中第二行的数据,就在读取位置写入2,点击保存。
- 点击运行。在运行结果区会输出获取的数据,为一维数组。
1.3 读取整列数据
- 双击「读取单元格值」组件,在弹出的窗口读取位置栏更改写入内容。若获取一列数据,比如第一列,就在读取位置写入A,点击保存。
- 点击运行。在运行结果区得到一列的数据,同样为一维数组
1.4 读取表格全部数据
- 双击「读取单元格值」组件,在弹出的窗口读取位置栏更改写入内容.如读取表格全部数据,读取位置写A1:H5,点击保存。
- 点击运行。运行结果区输出获取的全部数据。这里为二维数组(每一维元素为一行,行里每一个元素则为一列,也即一维为行,二维为列) 
2. 表格数据写入
- 在组件列表中找到「Excel表格」-「数据读写」-「向单元格写入内容」,拖出至主流程
- 在弹出的窗口中按如下输入后点击保存 - 选择文件: 选择需要操作的Excel文件。如要在表格J列11行写入内容,- 单元格位置写- J11
- 写入的内容: 为- 你好(或二维数组,- =[['张三','20','上海']['李四','19','天津']])
 
- 关闭Excel文件 
- 点击运行。执行成功后打开表格,表格内已写入内容
3. 获取行数列数
- 在组件列表中找到「获取行数」组件拖出至主流程,在弹出的窗口中按如下输入后点击保存。 - 选择文件: 选择需要操作的Excel文件
- 将获取到的行数保存给: 选择- 获取到的行数1
 
- 在组件列表中找到「获取列数」组件拖出至主流程,在弹出的窗口中按如下输入后点击保存。 - 选择文件: 选择需要操作的Excel文件
- 将获取到的列数保存给: 选择- 获取到的列数1
 
- 使用「输出到控制台」组件,在弹出的窗口中按如下输入后点击保存。 - 输出内容: 选择- 获取到的行数1
 
- 使用「输出到控制台」组件,在弹出的窗口中按如下输入后点击保存。 - 输出内容: 选择- 获取到的列数1
 
- 点击运行。在运行结果区可以看到输出的结果 - 5行8列 - PS:获取行数和列数,可以帮助我们在不清楚表格全部行数和列数时,也能获取表格的全部数据 
- 使用「读取单元格值」组件,在弹出的窗口中按如下输入后点击保存。 - 读取位置: 写入- ='A1:H'+str(获取到的行数1)- 注意:此次 - 获取到的行数1应为变量。
 
- 使用「输出到控制台」组件,在弹出的窗口中按如下输入后点击保存。 - 输出内容: 为- 读取的单元格值1
 
- 点击运行,在运行结果区可以看到获取到全部结果 
二、如何调整表格格式?
1. 调整表格格式
- 在组件列表中找到「Excel表格」-「设置」-「设置格式」,拖出至主流程
- 在弹出的窗口中按如下输入后点击保存。 - 选择文件: 选择需要操作的Excel文件
- 工作表名: 为- sheet1
- 位置栏: 写入需要变更的范围,如- c2:d5
- 格式: 选择- 文本
- 背景颜色: 自定义设置
- 字体颜色: 自定义设置
- 字体大小: 自定义设置
 
- 关闭Excel文件 
- 点击运行。运行成功后打开Excel文件可以看到,c2到d5中的格式已发生变更
三、运行效率说明
单独使用Excel组件下的如「向单元格写入内容」组件其实包含如下动作:
- 打开指定Excel文件
- 向单元格写入内容
- 保存Excel文件
- 关闭文件
如果大量操作,可能会因步骤1、3、4多次重复执行而导致整体运行效率低下。为防止发生此类问题,可以通过明确使用「打开Excel文件」、「保存Excel文件」、「关闭Excel文件」组件来提高运行效率。
下面举例:做100次写入操作,在表格中A列从1写到100。
3.1 只使用「向单元格写入内容」组件
- 在组件列表找到「次数循环」组件,拖出至主流程
- 在弹出的窗口中设置规则后点击保存 - 起始值: 为- 1
- 方式: 选择- 递增
- 递增值: 为- 1
- 结束值: 为- 101
- 将当前索引保存给: 选择- 行号
 
- 将「向单元格写入内容」组件拖出至主流程,放置在「次数循环」下方,在弹出的窗口中设置属性后点击保存 - 选择文件: 选择需要操作的Excel文件
- 工作表名: 可以自定义,比如写入- sheet5
- 单元格位置: 写入表达式- ='a'+str(行号)
- 写入的内容: 为- =str(行号)
 
- 关闭Excel文件 
- 点击运行。可以看到大概8秒的时间,在表格中从1写到了100
3.2 明确使用「打开Excel文件」、「保存Excel文件」、「关闭Excel文件」组件
- 在组件列表中找到「Excel表格」-「打开Excel文件」,拖出至主流程放在「次数循环」组件上方,在弹出的窗口中设置属性后点击保存 - 选择文件: 选择需要操作的Excel文件
- 将打开的Excel保存给: 选择- Excel对象1
 
- 双击「向单元格写入内容」组件,在弹出的窗口 - 选择文件栏选择- Excel对象1,点击保存
- 将「保存Excel文件」拖出至主流程,在弹出的窗口要保存的Excel选择Excel对象1,点击保存
- 将「关闭Excel文件」拖出至主流程,在弹出的窗口要关闭的Excel对象选择Excel对象1,点击保存
- 关闭Excel文件
- 点击运行,大概1秒完成,打开表格A列已完成1到100的写入
四、Excel组件和桌面Excel组件的区别?
1. 是否需要安装Office?
- Excel组件: 不需要安装Office也能使用
- 桌面Excel组件: 需安装Office并激活后才能使用
2. 是否可直接进行公式计算?
- Excel组件: 非桌面Excel组件不支持公式计算,若要计算数值需要单独抓取数据,然后写逻辑进行计算;
- 桌面Excel组件: 支持简单的公式计算
例: 计算Excel文件sheet1表格中C列年龄的总和
- 要先保证Excel文件sheet1表格中C列单元格格式为数值类型
- 在组件列表中找到「桌面操作」-「桌面excel操作」-「打开Excel文件(桌面)」,拖出至主流程,在弹出的窗口中按如下输入后点击保存 - 选择文件: 选择需要操作的Excel文件
- 将打开的Excel保存给: 选择- Excel对象2
 
- 将「向单元格写入内容(桌面)」组件拖出至主流程,在弹出的窗口中按如下输入后点击保存 - 选择文件: 选择- Excel对象2
- 工作表名: 写入- sheet1
- 单元格位置: 写入- c7
- 写入的内容: 写入- ='=sum(c2:c6)'
 
- 将「保存Excel文件(桌面)」拖出至主流程,在弹出的窗口中按如下输入后点击保存 - 要保存的Excel对象: 选择- Excel对象2
 
- 将「关闭Excel文件(桌面)」拖出至主流程,在弹出的窗口中按如下输入后点击保存 - 要保存的Excel对象: 选择- Excel对象2
 
- 点击运行,可以看到编辑器操作Excel的过程 
3. 「读取单元格值」组件中读取位置的支持不同
- Excel组件: 支持单元格、行、列、范围读取
- 桌面Excel组件: 仅支持单元格读取和范围读取










