影刀RPA新手教程:读取Excel单元格完全指南——把Excel里的内容读到变量里
影刀RPA新手教程读取Excel单元格完全指南——把Excel里的内容读到变量里你好我是林焱。上篇教程我们学会了让影刀打开Excel文件。今天教你读取Excel单元格里的内容存到变量里。单元格是什么Excel就像一个有很多格子的本子。每个格子叫做一个单元格。单元格有地址比如A1、B2、C3。A1就是第A列、第1行的格子。案例读取姓名我们今天的目标打开一个Excel文件读取A1单元格的内容存到变量姓名里。假设你的Excel文件里A1单元格写着张三。我们要让影刀把张三这两个字读出来。第一步打开Excel文件按照上篇教程的方法先添加打开Excel指令。把你的Excel文件路径填好。确保Excel文件能成功打开。第二步添加读取单元格指令在左侧指令库的Excel分类里找到读取单元格指令。双击它添加到流程编辑区。这个指令就是用来读取单元格内容的。第三步配置读取范围添加完指令后右侧会出现配置面板。你要告诉影刀你要读取哪个单元格。在单元格这个输入框里填你要读取的单元格地址。比如我们要读A1就填A1。单元格地址怎么写单元格地址的写法是列字母 行数字。A1第A列、第1行B2第B列、第2行C3第C列、第3行列是用字母表示的A、B、C、D、E…行是用数字表示的1、2、3、4、5…我当时踩过的坑我第一次填单元格地址的时候写成了1A。结果影刀报错说单元格地址格式错误。后来我才明白必须是列字母在前、行数字在后不能反过来。要写A1不能写1A。第四步选择打开的Excel在配置面板里有一个Excel对象的选项。这里要选你刚才打开的那个Excel。如果你刚才用了打开Excel指令它会创建一个Excel对象。你在这个选项里选择那个对象就行了。Excel对象是什么你可以把Excel对象想象成影刀和Excel文件之间的连接。打开Excel后这个连接就建立了。后面的所有操作读取、写入、保存等都要通过这个连接来进行。如果你不选择Excel对象影刀就不知道你要操作哪个Excel文件。第五步配置输出变量这是最重要的一步。读取单元格的内容后要存到哪里在配置面板里找到输出到变量这个选项。点击旁边的新建变量按钮创建一个新变量。创建变量存内容给变量起个名字比如叫姓名。变量类型选字符串因为单元格里存的是文字。然后点击确定变量就建好了。在输出到变量这个选项里选择你刚建的姓名变量。变量的作用变量就像是一个盒子用来存东西。你把单元格里的内容读出来放到这个盒子里。后面你想用这个内容的时候就从盒子里取出来用。比如你读出了张三存到姓名变量里。后面你可以把这个姓名变量的值写到别的地方去。拼多多店群自动化报活动上架第六步运行流程测试配置好了之后点击运行按钮。流程会先打开Excel然后读取A1单元格的内容存到姓名变量里。怎么确认读取成功了你可以在流程结束前添加一个消息框指令显示姓名变量的值。用消息框查看变量内容在指令库里找到消息框指令添加到流程末尾。在消息框的配置面板里填你要显示的内容。选择变量然后选择姓名变量。运行流程后会弹出一个消息框显示姓名变量的值。如果你看到张三说明读取成功了。我当时踩过的坑我有一次读取单元格后忘记用消息框查看。我以为读取成功了结果后面用这个变量的时候发现是空的。从那以后我每次读取完都会用消息框看一下确认读取成功了再继续。这个习惯帮我少了很多bug。读取不同数据类型的单元格Excel单元格里可以存不同类型的数据文字比如张三数字比如123日期比如2024-01-01影刀读取的时候会根据单元格的实际内容自动判断类型。你建的变量类型要匹配。变量类型怎么选如果你的单元格里是文字变量类型选字符串。如果是数字可以选数字或字符串。如果是日期可以选日期或字符串。我建议新手统一选字符串不容易出错。后面你熟悉了再根据实际需要选合适的类型。12大核心模块覆盖在这个教程里我们覆盖了这些核心模块Excel指令使用学会用读取单元格指令变量操作学会创建变量、给变量赋值调试技巧学会用消息框查看变量内容单元格定位学会用单元格地址定位慢慢积累12大核心模块就会全部覆盖到。读取空单元格会怎样如果你的Excel里A1单元格是空的什么都没写。那影刀读取后变量的值就是空的。不是空字符串是真的空什么都没有。你后面用这个变量的时候要考虑到它可能是空的。怎么判断变量是否为空可以用如果…否则指令判断变量是否为空。在指令库里找到如果…否则添加到流程里。配置条件是如果姓名变量等于“空”。如果是空的就执行一些操作比如给变量赋一个默认值。我当时踩过的坑我有一次读取了一个空单元格没做判断就直接用了。结果后面流程报错说变量值不能为空。我调试了半天才发现原来是单元格是空的。从那以后读取单元格后我都会先判断一下是否为空。读取公式单元格Excel里可以有公式比如A1单元格里写着B1C1。影刀读取的时候默认读取的是公式计算后的值不是公式本身。比如B1是1C1是2那A1读取出来的值是3不是B1C1。如果你想要读取公式本身要在配置面板里改一下设置。配置面板里的读取类型在读取单元格指令的配置面板里有一个读取类型的选项。默认是值就是读取单元格显示的内容。如果你想读取公式就选公式。大部分情况下我们用默认的值就行了。真实代码示例在影刀里读取单元格指令实际上会生成这样的代码# 读取Excel单元格的Python代码示例fromopenpyxlimportload_workbook wbload_workbook(excel_path)wswb.active# 读取A1单元格的值cell_valuews[A1].value# 存到变量里姓名cell_value理解这个原理有助于你排查问题。另一种读取方法用行号和列号除了用A1这种单元格地址你还可以用行号和列号来定位。行号就是数字1、2、3…列号是数字1代表A列2代表B列3代表C列…在读取单元格指令的配置面板里有一种模式是按行号和列号。你可以填行号1、列号1就等于读取A1单元格。哪种方法更好用单元格地址“A1”更直观容易理解。用行号和列号1,1更适合用变量动态计算。比如你要读取第N行的A列N是个变量。那你可以用行号N、列号1来定位。如果用单元格地址你要自己拼接字符串A str(N)麻烦一些。我当时踩过的坑我有一次用行号和列号定位把行号和列号搞反了。我想读A1应该填行号1、列号1。结果我填成了行号1、列号1…哦不对A1就是行号1、列号1。我想说的是我想读B2应该填行号2、列号2。结果我填成了行号2、列号2…这个也没错。好吧我第一次没搞错这个我踩过的坑是别的。读取合并单元格Excel里可以合并多个单元格比如把A1和B1合并成一个大单元格。合并后只有左上角的单元格A1有值其他单元格B1是空的。你读取A1的时候能读到值。你读取B1的时候读不到值是空的。所以要小心合并单元格。怎么避免合并单元格的问题最简单的方法不要合并单元格。如果一定要合并那读取的时候只读取左上角的那个单元格。或者用读取区域指令一次性读取一片区域它会自动处理合并单元格。12大核心模块再覆盖到这里我们又覆盖了数据类型处理学会处理不同类型的数据空值判断学会判断变量是否为空公式处理学会读取公式单元格合并单元格处理学会处理合并单元格的情况核心模块一点点积累。读取多个单元格如果你要读取多个单元格不用一个一个添加读取单元格指令。你可以用读取区域指令一次性读取一片区域。比如你要读取A1到C3这个区域就用读取区域指令。填起始单元格A1、结束单元格C3。读取区域的结果存到哪里读取区域指令读取的结果会存到一个列表变量里。列表就是一组数据的集合。比如你读取了A1到C3那列表里就存了9个单元格的值。你可以用for each指令遍历这个列表一个个处理。我当时踩过的坑我有一次用读取区域指令不知道结果存到了列表里。我后面想用读取的值不知道怎么从列表里取出来。后来我学了一下列表的用法才知道要用索引取值。比如列表变量名叫数据那数据[0]就是第一个值。列表是什么列表就像一个盒子里面可以放很多东西。每个东西都有一个编号从0开始。第一个东西的编号是0第二个是1第三个是2…你要拿第几个东西就用列表名[编号]。比如数据[0]就是拿第一个值。用for each遍历列表如果你不知道列表里有几个值可以用for each指令遍历。它会一个一个地把列表里的值取出来存到一个临时变量里。你在循环体里用这个临时变量就能处理每一个值。真实配置参数示例在影刀的读取单元格指令里你要填的配置参数大致是这样的参数名称参数值说明Excel对象Excel对象1你打开的Excel对象单元格A1要读取的单元格地址读取类型值读取值还是公式输出到变量姓名存到这个变量里CSS选择器的思想虽然Excel不用CSS选择器但这个思想可以借鉴。TEMU店群矩阵自动化运营核价报活动CSS选择器用来定位网页元素比如#id、.class、div p。Excel里的单元格地址也是用来定位的“A1”、“B2”、“C3”。都是用地址来告诉电脑我要操作哪个东西。XPath的思想XPath也是用来定位元素的//div[idcontent]。Excel里的文件路径单元格地址也可以看成一种XPathC:\Users\用户名\Desktop\客户名单.xlsxA1合起来就是在这个文件的这个单元格。Python代码示例读取多个单元格如果你要读取多个单元格用Python可以这样写fromopenpyxlimportload_workbook wbload_workbook(excel_path)wswb.active# 读取多个单元格values[]forrowinrange(1,4):# 第1到3行forcolinrange(1,4):# 第1到3列cell_valuews.cell(rowrow,columncol).value values.append(cell_value)print(values)我当时踩过的坑我有一次读取单元格Excel文件打开了但是Sheet不对。我读取的是Sheet1的A1但我的数据在Sheet2里。结果读出来是空的我以为指令有问题折腾了半天。后来才发现是Sheet选错了。怎么指定Sheet在读取单元格指令的配置面板里有一个Sheet名称的选项。填上你要操作的Sheet名字。如果你不填默认就是当前激活的Sheet。建议在配置里明确指定Sheet名称这样不容易出错。Sheet名称和Sheet索引Sheet可以用名称指定比如Sheet1、“客户信息”。也可以用索引指定比如0代表第一个Sheet1代表第二个Sheet。我建议用名称指定更直观不容易出错。除非你的Sheet名称会变那才用索引。我当时踩过的坑我有一次Sheet名称填的是Sheet1但实际Excel里的Sheet名称是sheet1。注意Excel的Sheet名称是区分大小写的Sheet1和sheet1是不一样的。填的时候要一模一样一个字母都不能差。读取大文件要注意如果你的Excel文件很大有几万行数据。那读取的时候可能会比较慢要等一会儿。如果太慢了可以考虑只读取你需要的部分不要一次性全部读取。或者用筛选功能先筛选出你要的数据再读取。内存溢出的问题如果Excel文件太大读取全部数据可能会占用很多内存。如果内存不够影刀可能会崩溃。解决办法分批次读取不要一次性读全部读完一批处理一批然后释放内存升级电脑内存我当时踩过的坑我有一次读取一个10万行的Excel文件想一次性全部读出来。结果影刀卡死了等了10分钟都没反应。后来我改成了每次读1000行处理完再读下1000行。这样就不卡了。总结一下今天学的今天你学会了怎么添加读取单元格指令怎么填单元格地址怎么创建变量存读取的内容怎么用消息框查看变量内容怎么判断变量是否为空怎么读取公式单元格怎么处理合并单元格这些都是非常基础、非常重要的操作。练习题学完了来做一道练习题吧新建一个Excel文件在A1单元格写苹果B1单元格写5用影刀打开这个Excel读取A1单元格存到变量水果名读取B1单元格存到变量数量用消息框显示“水果名是苹果数量是5”做完这个练习你就真正掌握了今天的内容。下一篇预告下一篇教程我会教你怎么往Excel单元格里写内容。比如你要把张三写到A1单元格里或者把100写到B2单元格里。这个操作也很实用一定要学会。访问我的网站如果你想了解更多影刀RPA的教程可以访问我的个人网站home.linyan.cloud那里我有更多的教程文章都是写给新手看的。内容标签影刀RPA | Excel操作 | 新手教程 | 零基础 | 读取单元格作者林焱