Apache POI Streamsheet getRow исключение неподдерживаемой операции - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу прочитать более 600 тыс. Строк из файла excel (.xlsx).

Я использую Apache POI и xlsx-streamer.

<dependency>
        <groupId>com.monitorjbl</groupId>
        <artifactId>xlsx-streamer</artifactId>
        <version>1.2.0</version>
</dependency>

Apache poi версия3.15 потому что xlsx-streamer не поддерживал в вышеприведенных версиях

Я хочу перебирать только определенные столбцы.Я попробовал следующее:

File myFile = new File("testFile.xlsx");

    FileInputStream fis = new FileInputStream(myFile);
    Workbook workbook = StreamingReader.builder().bufferSize(4096).open(fis);
    // Sheet sheet = workbook.getSheetAt(0);
    for (Sheet sheet : workbook) {
        for (int r = 0; r < sheet.getLastRowNum(); r++) {
            Row rr = sheet.getRow(r);
            for (int c = 1; c < rr.getLastCellNum(); c++) {
                Cell cell = rr.getCell(c);
                System.out.println("" + cell.getStringCellValue());
            }
        }

Я получаю это исключение с несколькими предупреждениями

Exception in thread "main" java.lang.UnsupportedOperationException
at com.monitorjbl.xlsx.impl.StreamingSheet.getRow(StreamingSheet.java:102)
at ReadExcel.main(ReadExcel.java:35)

Строка № 35 равна

Row rr = sheet.getRow(r);

1 Ответ

0 голосов
/ 28 сентября 2018

Есть ошибка об этой ошибке. Смотрите здесь.

Вы можете изменить версию Java на Java 8, которая может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...