Память-эффективная библиотека Java для чтения файлов Excel?

есть ли эффективная для памяти библиотека Java для чтения больших файлов Microsoft Excel (оба .xls и .XLSX-файл)? У меня очень ограниченный опыт работы с Apache POI, и мне показалось, что это огромная свинья памяти из того, что я помню (хотя, возможно, это было только для письма, а не для чтения). Есть что-то получше? Или я неправильно помню и / или неправильно использую POI?

было бы важно, чтобы у него была "дружественная" лицензия с открытым исходным кодом.

3 ответов


библиотека POI Apache имеет API на основе событий это имеет меньший объем памяти. К сожалению, он работает только с HSSF (ужасный формат электронных таблиц), а не XSSF (формат XML - таблиц-для файлов OOXML).


форматы файлов Excel (оба) огромны и чрезвычайно сложны, и все, что читает все их возможное содержимое, будет одинаково огромным и сложным. Помните, что они могут содержать диапазоны, макросы, ссылки, встроенные вещи и т. д.

однако, если Вы читаете что-то простое, как сетка чисел, я рекомендую сначала преобразовать электронную таблицу во что-то более простое, как CSV, а затем прочитать этот формат.


взгляните на JExcel:

http://jexcelapi.sourceforge.net/

Я не могу объяснить объем памяти, но, очевидно, с большими электронными таблицами вы будете потреблять много памяти для обработки.

вы должны иметь возможность использовать его для xls и xlsx:

читать XLSX файл в Java