首页 > 解决方案 > 如何根据Arraylist整数的值循环

问题描述

我有一个 arraylist 整数,其中包含这样的行数:

[2, 9, 16, 23, 30, 37, 44, 51, 58, 65, 72, 79]

现在,我想根据 arraylist 中的数字设置特定行的颜色,如下所示:

      for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {
            for (int p = SA.get(0); p < SA.size() + 1; p = SA.get(p)) {
                XSSFRow SATURDAY = sheet.getRow(p);
                for (int i = 0; i < 4; i++) {
                    if (SATURDAY.getCell(i) != null) {
                        SATURDAY.getCell(i).setCellStyle(greycolor);
                    } else {
                        Cell cell1 = SATURDAY.createCell(i);
                        cell1.setCellStyle(greycolor);
                    }
                }
            }
        }

问题是,当我运行类文件时,它只设置了第 2 行和第 16 行的颜色。行的其余部分不受影响。我不知道如何为循环数组列表做增量。帮我

标签: javaapache-poi

解决方案


你迭代不正确。您初始化pSA.get(0),即2。然后将其更改为SA.get(p)(ie SA.get(2)),即16. 然后退出循环,因为16 > SA.size() + 1.

尝试 :

for (int p : SA) {
    ...
}

或者

for (int x = 0; x < SA.length; x++) {
    int p = SA.get(x);
    ...
}

推荐阅读