我不确定,也许我们在这里有类似的要求而且我很难找到正确的请求。
我的英语不太好,我希望我可以解释我需要什么。我有任务,迭代xlsx文件,其中包含有关一个Sprint和我们的teamcollegues缺席的信息。
我需要迭代的帮助,我是一个菜鸟,我尝试用'for loop',但它让我完全糊涂了。
这就是我现在所拥有的:
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();
}
我会变得疯狂。因为我无法为正确的迭代找到正确的解决方案:(
有人可以帮帮我吗?请对我宽容:)非常感谢! 干杯阿迪萨
答案 0 :(得分:2)
由于表格和行是Iterables,因此迭代行和单元格非常简单:
Sheet sheet = ...
for (Row row : sheet) {
for (Cell cell : row) {
// Actual work on cell here
}
}