java Apache POI 3.9 Eclipse (чтение больших файлов xlsx)

Я пытаюсь прочитать серию файлов excel (.xlsx), но когда файл имеет много строк, он швыет код, который не работает. Когда файл мал, все его в порядке. Я пытаюсь прочитать со второго листа каждого файла первый столбец, начиная с строки 5. Это мой код:

String FilePath ="C:\\xxx"; List<String> data = new ArrayList<String>(); File[] listOfFiles = new File(FilePath).listFiles(); for (int i = 0; i < listOfFiles.length; i++) { if (listOfFiles[i].isFile() && listOfFiles[i].getName().substring(listOfFiles[i].getName().length()-4).equals("xlsx")) { int pos_data = 0; String excelFilePath = "C:\\xxx\\" + listOfFiles[i].getName(); FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = workbook.getSheetAt(1); java.util.Iterator<Row> iterator = firstSheet.iterator(); while (iterator.hasNext()) { Row nextRow = iterator.next(); java.util.Iterator<Cell> cellIterator = nextRow.cellIterator(); Cell cell = cellIterator.next(); if(pos_data > 4) data.add(cell.getStringCellValue()); pos_data++; } workbook.close(); inputStream.close(); } } 

Я уже прошел тест и когда файлы большие, в первой итерации fisrtSheet.getLastRowNum () возвращает -1, а значение в ячейке возвращает последнее значение в столбце.

я пытаюсь понять это для себя, но я никогда не использовал POI, поэтому я прошу вас высказать свое мнение.

Попробуйте использовать SXSSF вместо XSSF . Это должно позволить вам обрабатывать большие файлы excel. https://poi.apache.org/spreadsheet/how-to.html#sxssf

  • Как преобразовать HSSFWorkbook в CSV-файл.?
  • Независимая от платформы строка подключения для EXCEL в java
  • В чем разница между getRichStringCellValue (). GetString () и getRichStringCellValue (). ToString ()
  • Исключение пространства кучи POI или любой альтернативный java api для Excel 2007?
  • Как читать ячейку Excel, имеющую дату с Apache POI?
  • Формат ячейки Apache poi (°) градусный знак
  • как я могу разобрать CSV (excel, не разделенный запятой) файл в Java?
  • Есть ли инструмент, который заменит передачу файлов Excel взад и вперед и слияние?
  • Как добавить листы в новую книгу по списку массивов
  • Найти последнюю строку в Excelsheet с данными - Java
  • Apache poi XLSX для XLS
  • Interesting Posts

    Приложение Windows – 32-битное и 64-битное Office

    Excel Macro для копирования строк из одного файла в другой

    Удалить строки, которые не содержат строку в моем массиве

    Подключение к FTP из Excel для автоматизации совместного использования файлов (VBA Beginner)

    Заполнить переменную начальную строку

    VBA для изменения сводного фильтра в кубе OLAP до диапазона

    Вставка временных меток в Excel

    Фильтрация таблицы Excel с помощью VBA

    Spreadsheet_Excel_Reader public api vs разница в скорости прямого доступа (PHP)

    multiple if / и утверждение, возвращающее # значение! ошибка

    Ярлыки макросов Excel 2010 не работают, когда я запускаю Excel, но работает, только если я сначала вручную запустил его из VBE

    Excel if выражение возвращающее значение неформатированное

    Присвоение диапазона рабочих листов массиву

    Невозможно преобразовать файл Excel в файл Pdf с помощью Microsoft.Office.Interop

    Приложение Excel для веб-приложения

    Давайте будем гением компьютера.