Example usage for org.apache.poi.xssf.usermodel XSSFSheet iterator

List of usage examples for org.apache.poi.xssf.usermodel XSSFSheet iterator

Introduction

In this page you can find the example usage for org.apache.poi.xssf.usermodel XSSFSheet iterator.

Prototype

@Override
public Iterator<Row> iterator() 

Source Link

Document

Alias for #rowIterator() to allow foreach loops

Usage

From source file:xqt.adapters.csv.test.ExcelTest.java

public void read() {
    try {//  w ww .  j a  v a  2 s.  c om
        FileInputStream file = new FileInputStream(new File("C:\\Users\\standard\\Downloads\\javaTest.xlsx"));
        //Create Workbook instance holding reference to .xlsx file
        XSSFWorkbook workbook = new XSSFWorkbook(file);

        //Get first/desired sheet from the workbook
        XSSFSheet sheet = workbook.getSheet("Sheet1"); //workbook.getSheet("test");
        //            Stream stream = StreamSupport.stream(sheet.spliterator(), false); // maybe it is better to have a limited size stream by passing the sheet.getPhysicalNumberOfRows()

        Stream<Row> stream = StreamSupport.stream(Spliterators.spliterator(sheet.iterator(),
                sheet.getPhysicalNumberOfRows(), Spliterator.ORDERED), false);

        //long cnt = stream.count();
        stream = stream.skip(1);
        FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
        //Iterable<Row> iterable = () -> sheet.iterator();
        List<Entity> result = stream.filter(row -> (!row.getZeroHeight()))
                .map(row -> RowBuilder.createRowArray(row, evaluator)).map(rowArray -> new Entity(rowArray))
                .peek(p -> {
                    System.out.println("");
                }).collect(Collectors.toList());
        long count = result.stream().count();
        System.out.println("Total records: " + count);
        file.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}