Лично я бы порекомендовал POI через JExcel. Причины, по которым я выбрал POI, а не JExcelAPI:
- POI поддерживает старые и новые форматы листов MS Excel
- Имеет более чистый API (imho)
- Насколько я вижу, он не страдает от раздражающих проблем с датой \ временем, которые имеет JexcelApi ( Отображение даты ).
У меня была возможность использовать оба. У POI, на мой взгляд, действительно продуманный и простой в использовании API. Самым большим преимуществом с моей точки зрения является то, что вы можете отказаться от создания экземпляра рабочего листа, а затем разобраться со всем в контексте интерфейсов пользовательской модели. Это означает, что ваш код может обрабатывать как старые, так и новые форматы файлов Excel, не беспокоясь о том, какой именно.
Кроме того, вы можете читать и писать один и тот же экземпляр рабочего листа. С JExcelApi есть действительно странное разделение между «читаемыми» листами и «доступными для записи» листами, которые я нахожу странными. Это также привело к тому, что мне пришлось ввести в мой код грязную работу, чтобы перейти от «чтения» к «записи».
Я не заметил существенной разницы в производительности при использовании POI для старых двоичных файлов (POI HSSF) и JExcelApi. Однако существует значительная разница в производительности между POI HSSF (старый формат) и POI XSSF (новый формат). Я предполагаю, что это из-за всей дополнительной работы, необходимой для распаковки и анализа XML.