【问题标题】:Loop several times with different values each time循环多次,每次使用不同的值
【发布时间】:2015-07-23 11:41:59
【问题描述】:

我需要创建一个循环,每次循环使用不同的 rowno 值。以下是部分代码:

int rowno = 2;
File file = new File("path");
Workbook workbook = Workbook.getWorkbook(file);
String value = workbook.getSheet(0).getCell(1, rowno).getContents();

接下来的行号将是 11、20、29 等等...

【问题讨论】:

  • 创建一组rowno
  • 使用for 循环?增加 9?

标签: java eclipse excel loops


【解决方案1】:

用需要检查的行声明数组、列表或集合:

int[] rowsToCheck = { 11, 20, 29 };

然后遍历取值的数组:

for (int i = 0; i < rowsToCheck.length; i++) {
    String value = workbook.getSheet(0).getCell(1, rowsToCheck[i]).getContents();
    System.out.println(value);
}

更新:
如果数字是连续的 11 + 9 = 20 + 9 = 29 + 9...。正如Tarik 建议的那样,只需使循环的计数器递增9.

int numberOfRows = // what you neeed

for (int i = 0; i < numberOfRows; i+=9) {
    String value = workbook.getSheet(0).getCell(1, i).getContents();
    System.out.println(value);
}

【讨论】:

    【解决方案2】:

    也许我遗漏了一些东西,但以下代码应该可以:

    int rowno;
    int lastrow=100; // Correct as needed
    File file = new File("path");
    Workbook workbook = Workbook.getWorkbook(file);
    for (rowno=2; rowno<lastrow; rowno+=9) {
        String value = workbook.getSheet(0).getCell(1, rowno).getContents();
    }
    

    【讨论】:

    • 据我了解,关键是行不是连续的数字......但如果是这样,你的答案看起来更好;)
    【解决方案3】:

    您必须获取 excel 文件中每行的行数。获得工作表后,您就知道最大行数,然后只需迭代并递增 9。

    Sheet currentSheet = workbook.getSheetAt(int index);
    
    for (int rowno = 2; rowno < currentSheet.getPhysicalNumberOfRows(); rowno = rowno + 9)
    {
        String value = currentSheet.getCell(1, rowno).getContents();
    }
    

    【讨论】:

    • 我的意思是,无论谁反对你,都应该解释一下。很抱歉造成混乱。
    • 顺便说一句“for (rowno;”应该是“for (rowno=2;”?
    【解决方案4】:
    for (int i = 2; i < maxValue; i = i + 9) {
    
    }
    

    【讨论】:

    • 我在问谁对你投了反对票。你的答案是正确的。
    • 当人们在没有任何解释的情况下投反对票时,这让我很生气。我认为反对票应该需要解释。
    • 实际上似乎是对的......但我敢打赌有人不喜欢纯代码的答案......以前经常发生在我身上......所以用户...... xD
    猜你喜欢
    • 2015-08-02
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    相关资源
    最近更新 更多