You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework如何遍历Excel工作表所有行 运行输出空值如何解决

问题原因
  • FOR循环语法错误:你当前编写的FOR ${i} IN 20只会执行1次循环,变量${i}的取值固定为20,并非遍历1到20的所有行。
  • Excel操作参数理解错误:Open Excel Document的doc_id参数是给当前打开的Excel文件分配的唯一标识,用于多文件操作时区分实例,不是指定要读取的工作表名称。你当前未切换到Sheet2工作表,默认读取的是Excel文件的第一个工作表。
  • 空单元格返回规则:ExcelLibrary读取无内容的空单元格时,返回值为None,你仅读取第20行第一列的单元格,若该位置本身为空/读取的工作表错误对应位置为空,就会出现你当前的输出结果。
  • 依赖适配问题:若使用高版本xlrd库,默认不支持xlsx格式的Excel读取,也会出现读值为空的情况。
修复后的完整代码
*** Settings ***
Library           SeleniumLibrary
Library           ExcelLibrary
Library           Collections

*** Variables ***
${path_excel}   C:\\User\\Test.xlsx

*** Test Cases ***
Test1
    Test the ExcelData

*** Keywords ***
Test the ExcelData
    ${my_data_as_list}=    Create List
    # 打开Excel文件,分配自定义标识excel1
    Open Excel Document   filename=${path_excel}  doc_id=excel1
    # 获取Sheet2工作表的有效行数
    ${row_count}=    Get Row Count    sheet_name=Sheet2
    # 遍历所有有效行,Excel行号从1开始计数
    FOR   ${i}   IN RANGE  1  ${row_count + 1}
        ${my_data}=  Read Excel Cell  sheet_name=Sheet2  row_num=${i}  col_num=1
        Log to Console  ${my_data}
        Append To List    ${my_data_as_list}      ${my_data}
    END
    Log to Console   ${my_data_as_list}
    # 关闭Excel文件释放资源
    Close Excel Document    doc_id=excel1
修复说明
  • 循环改用IN RANGE语法实现范围遍历,同时先获取目标工作表的实际有效行数,避免硬编码行数导致读空或者漏读。
  • 读取单元格时明确指定sheet_name参数,确保读取的是目标Sheet2工作表。
  • 新增Close Excel Document关键字,避免Excel文件占用导致后续操作异常。
  • 若运行后仍存在读值为空的问题,执行pip install xlrd==1.2.0安装适配版本的依赖库,高版本xlrd已取消对xlsx格式的支持。

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:24:03