【问题标题】:How to skip row when for loop is executing and row is empty执行for循环且行为空时如何跳过行
【发布时间】:2019-03-24 06:11:01
【问题描述】:

我有 2 张 excel 表,我正在使用 testNg 断言比较单元格值。以下是 sheet1 和 sheet2 中的值,在 david 之后,我在两张表中都有一个空行,我的脚本失败了,因为第 3 行是空白的,它不会进入第 4 行?

Sheet1  Sheet2

sachin  sachin
david   david

winter  winter

我写了以下代码:-

int rowCount = xlib.getRowCount("Sheet1");

for (int i = 0; i<=rowCount;i++)
{
    String compair1= xlib.getExcelData("Sheet1", i, 0);
    System.out.println(compair1);
    String compair2=xlib.getExcelData("Sheet2", i, 0); 
    System.out.println(compair2);
    Assert.assertEquals(compair1, compair2);
    System.out.println("compared successfully");
}   

需要正确的代码,它应该跳过第 3 行,因为它有空白值并移动到第 4 行并比较并通过脚本。

【问题讨论】:

  • 添加检查值 compair1 或 compair2 是否为空,如果是,请不要断言。
  • 你可以只清理你的数据...或者抓取所有数据并过滤掉空的。

标签: java selenium


【解决方案1】:

使用continue 语句。

int rowCount = xlib.getRowCount("Sheet1");

for (int i = 0; i<=rowCount;i++)
{
    try {
        String compair1= xlib.getExcelData("Sheet1", i, 0);
        System.out.println(compair1);
        String compair2=xlib.getExcelData("Sheet2", i, 0); 
        System.out.println(compair2);
        Assert.assertEquals(compair1, compair2);
        System.out.println("compared successfully");
    } catch (Exception e) {
        continue;
    }
}   

【讨论】:

  • 感谢您的帮助!!!但我还有另一个挑战,我有一些日期格式的行(mm-dd-yyyy),它无法读取该条目,它说文本单元格值是数字,有什么办法,我可以读取日期格式并比较两张表,还是我需要更改 Excel 本身的日期格式?
  • 这算作另一个问题,因此应该与这个问题分开。请就这个问题提出一个单独的问题。
【解决方案2】:

您可以将循环从 i 设置为 i 的另一个循环

【讨论】:

  • 这是一个例子,但实际上我必须有 50 行,有些中间是空白的,我不能使用很多循环来代替我可以得到一些 if 语句说明行是否为空白跳过并移至下一个像那样排?
  • 哦,在这种情况下,TheChubbyPanda 的答案应该是您正在寻找的。​​span>
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
相关资源
最近更新 更多