2014-01-26 4 views
0

всеБольшой Excel Файл - Загрузить и импорта - Java

Я хочу, чтобы загрузить и импортировать большие файлы первенствовать, имеющие более одного миллиона записей в моей программе Java.

можно легко импортировать небольшие файлы с помощью Apache POI в моей системе, но когда я начала с большими файлами, приложение выдает и из памяти ошибки,

я искал Google и нашел много потоков на это, я попытался все, но не могло обойти это.

кто-нибудь может дать мне решение для моей конкретной проблемы, время импорта не является проблемой для меня, сейчас же я могу с вопросом производительности, а также,

просто хотите импортировать эти данные в свой существующий система без ошибки oem.

У меня очень хорошая конфигурация в моей системе, и у java достаточно памяти для использования, поэтому аппаратное обеспечение не является проблемой.

Благодаря

+0

Почему голос? – Mihir

+0

У меня была аналогичная проблема, и POI API - всего лишь память. Самая простая вещь - это открыть файл excel как zip-файл, а затем проанализировать лист с помощью анализатора SAX – mac

ответ

0

Вы хотите, чтобы поток данных, так что вам не нужно хранить все записи в памяти сразу. POI поддерживает потоковое вещание (см. XSSF and SAX event API). Когда вы читаете данные, отправляйте их туда, где вам нужно (база данных или где бы вы не указали) - с помощью потокового API вы не должны считывать все данные в памяти перед его обработкой.

Вы также можете экспортировать данные в файл CSV, а затем использовать обычный FileInputStream для чтения файла и обработки каждой записи по мере ее чтения.

+0

Привет, уже использованный SXSSF, он может писать только, когда я пытаюсь читать с ним, он дает мне все пустые значения из ячейки. – Mihir

+0

Правильно, извините, я отредактировал ответ, чтобы указать на XSSF. Можете ли вы экспортировать в CSV? Это было бы намного проще. – Raman

Смежные вопросы