0

よくわかりませんが、ここで同様のリクエストがあったのかもしれませんが、適切なリクエストを見つけるのはばかげています。

私の英語はあまり上手ではありません。必要なことを説明できることを願っています。1 つのスプリントとチーム同僚の不在に関する情報を含む xlsx ファイルを反復処理するタスクがあります。

反復の助けが必要です。私は初心者で、「for ループ」で試してみましたが、完全に混乱しました。

これが私が今持っているものです:

public void go() throws Exception, FileNotFoundException, IOException {
    FileInputStream fis = new FileInputStream(fileName);
    Workbook wb = WorkbookFactory.create(fis);
    Sheet sheet = wb.getSheetAt(25);

    Row ersteReihe = sheet.getRow(0);
    Cell datum1 = ersteReihe.getCell(1);  //Date in column B1


    System.out.println("\n\nAbwesenheit " +sheet.getSheetName() );

    // Hole aus der zweiten Reihe den ersten Namen:
    Row zweiteReihe = sheet.getRow(1);
    Cell name1 = zweiteReihe.getCell(0);     //Name of employee
    Cell isDa1 = zweiteReihe.getCell(1);     //Information with 1 and 0 who is absence
    int zell1 = (int) isDa1.getNumericCellValue();
    if (zell1 == 0) {
        System.out.print("\n" + name1.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }
    // Hole aus der zweiten Reihe den ersten Namen:
    Row dritteReihe = sheet.getRow(2);
    Cell name2 = dritteReihe.getCell(0);
    Cell isDa2 = dritteReihe.getCell(1);
    int zell2 = (int) isDa2.getNumericCellValue();
    if (zell2 == 0) {
        System.out.print("\n" + name2.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }
    // Hole aus der zweiten Reihe den ersten Namen:
    Row vierteReihe = sheet.getRow(3);
    Cell name3 = vierteReihe.getCell(0);
    Cell isDa3 = vierteReihe.getCell(1);
    int zell3 = (int) isDa3.getNumericCellValue();
    if (zell3 == 0) {
        System.out.print("\n" + name3.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }
    // Hole aus der zweiten Reihe den ersten Namen:
    Row fuenfteReihe = sheet.getRow(4);
    Cell name4 = fuenfteReihe.getCell(0);
    Cell isDa4 = fuenfteReihe.getCell(1);
    int zell4 = (int) isDa4.getNumericCellValue();
    if (zell4 == 0) {
        System.out.print("\n" + name4.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }
    // Hole aus der zweiten Reihe den ersten Namen:
    Row sechsteReihe = sheet.getRow(5);
    Cell name5 = sechsteReihe.getCell(0);
    Cell isDa5 = zweiteReihe.getCell(1);
    int zell5 = (int) isDa5.getNumericCellValue();
    if (zell5 == 0) {
        System.out.print("\n" + name5.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }
    // Hole aus der zweiten Reihe den ersten Namen:
    Row siebteReihe = sheet.getRow(6);
    Cell name6 = siebteReihe.getCell(0);
    Cell isDa6 = siebteReihe.getCell(1);
    int zell6 = (int) isDa6.getNumericCellValue();
    if (zell6 == 0) {
        System.out.print("\n" + name6.getStringCellValue() + " ist am " + datum1 + " nicht Anwesend ");
    }

    fis.close();

}

私は夢中になるつもりです。私は正しい反復のための正しい解決策を見つけることができない原因:(

誰か助けてくれませんか?私に寛大になってください:)

どうもありがとう!乾杯アディサ

4

1 に答える 1

2

Sheets と Rows は Iterable であるため、行とセルの繰り返しは非常に簡単です:

Sheet sheet = ...
for (Row row : sheet) {
    for (Cell cell : row) {
        // Actual work on cell here
    }
}
于 2013-04-24T10:18:39.623 に答える