1.概述
第三节 读取数据已经提到了运行创建第一个应用时,如果不同用户常用关键词不同且想要快速增删关键词时,将关键词存放在excel表中更便捷,但第三节中只演示了搜索单个关键词的情况。当excel表中存放了多个关键词,每个关键词都需要被拿出来进行搜索、抓取数据,就需要用到循环excel内容。
2.循环excel内容
先使用【启动Excel】打开指定的Excel表格,再用【循环Excel内容】在Excel工作表中按行循环Excel对象的内容。这个指令可以理解成每次拿出表格中的一行数据,后续就能对该行数据进行处理了。
基础参数
默认起始行是1,结束行是-1,如果想把整个excel表所有的行都循环一遍,则不需要调整这两个参数的值。否则就需要根据实际场景输入起始行和结束行的行号。比如说下方表格,我只想获取AI和财务及之间几行的内容,默认起始行是3,结束行是6
生成的变量
循环完之后会生成一个loop_excel变量,我们先打印出来看看这些变量的具体值,显而易见loop_excel是一个列表对象,当前行的每一个列值其实就是列表中的不同项
如果需要获取当前循环到的行的行号,可用该变量自带的.RowNumber方法获取
如果需要获取列表项的个数,可用该变量自带的.Count方法获取
如果想要拿到每一行中某一具体的列值,需要输入该列值的位置序号,该位置序号从0开始。例如此时我们想要获取的关键词具体值都存放在了A列,即每一行A列的那个单元格,A列的位置序号是0,也就是loop_excel[0]。
注意:列表取值方法具体可参考第1节 数据的表达中的“如何从列表中提取内容”
3.使用示例
背景
创建第一个应用经过第3节 读取数据和第4节 写入数据的处理,已经能实现搜索单个关键词,并将单个关键词的搜索结果写入另一个Sheet页中。现在需要进一步优化,实现能自动搜索我们填写在excel表中的所有关键词,并将所有搜索结果都写入Sheet2中。同时将不同关键词搜索出来的页码数存入关键词旁边,页码数越大,证明该关键词的提及率越高。
应用修改
3.1 将【循环Excel内容】托至“调用子流程2_2_填写关键词并搜索”前一行,不论是用列表循环或Excel表内容循环,获取关键词都是最外层的循环。其中关键词Sheet中的起始行是2,结束行是-1
3.2 修改“子流程2_填写关键词并搜索”中的指令,首先删除【读取Excel内容】指令,该指令是第4节 写入数据增加的,用于读取指定单元格中的值。现在我们需要按顺序读取固定列的关键词,关键词的取值格式固定为loop_excel[0],该格式取到的具体值会根据循环到的行号自行变化。因此只需将代表当前关键词的loop_excel[0]填写到【填写网页输入框】指令的输入内容参数中
3.3 修改“子流程3_获取当前页面所有博客相关信息”中的【按行写入内容至Excel工作表】,为区分Sheet2页中的搜索结果来源于哪个关键词,在Sheet2中新增了“关键词”列,该列的写入内容是代表当前关键词的loop_excel[0]
3.4 最后一步,将页码数写入Sheet1中对应的关键词旁。
设置一个数值变量,命名为“页码数”。将【设置变量】拖至【调用子流程2】下方,该变量放置在此能实现每切换一次关键词,就重新变回初始值1。也就是说,当前变量值后续的变化只在当前关键词中有效,遇到新的关键词后会自动变回初始值,重新参与新一轮计算。
每点击一次翻页按钮,页码数就应该自动加1,因此在【点击网页元素】后设置一次页码数变量。
注意:该步骤就是重新赋值的过程,除了变量值需要加1,变量类型和变量名称都不能变
最后一页的信息也都获取完毕后,就可以将“页码数”写入Sheet1中对应关键词旁边了。在翻页循环的【循环结束标记】指令下方新增【按单元格写入内容至Excel表】指令。指令中的行号参数,需要填写本章节提及的.RowNumber方法,通过该方法可直接得出当前循环到的关键词所在行的行号。列号可填写2或B,写入内容是数值变量“页码数”在本次循环生成的最终值