Как перебрать все строки и ячейки в файле Excel
Я хочу использовать foreach для итерации по всем ячейкам в моем файле excel, чтобы установить один цвет переднего плана. Это то, что у меня есть до сих пор.
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Sheet1");
sheet = wb.getSheetAt(0);
for (HSSFRow myrow : sheet){
for (HSSFCell mycell : myrow){
//set foreground color here
}
}
проблема заключается в утверждениях for (HSSFRow myrow : sheet)
и for (HSSFCell mycell : myrow)
Я:
может только перебирать массив или экземпляр
java.lang.Iterable
проверил HSSFSheet
и HSSFRow
- они реализуют java.lang.Iterable(Row)
и java.lang.Iterable(Cell)
соответственно.
2 ответов
попробуйте это. Он компилирует ОК
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Sheet1");
sheet = wb.getSheetAt(0);
for (Row myrow : sheet) {
for (Cell mycell : myrow) {
//set foreground color here
}
}
Я использую POI 3.7 стабильный
пожалуйста, рассмотрите возможность использования stream для более декларативной итерации стиля:
Workbook wb = WorkbookFactory.create(new FileInputStream("filename.xlsx"));
Sheet sheet = wb.getSheetAt(0);
StreamSupport.stream(sheet.spliterator(), false)
.filter(...)
.map(...)
.collect(Collectors.toList());