Я використовував як JXL (тепер "JExcel"), так і Apache POI . Спочатку я використовував JXL, але зараз використовую Apache POI.
По-перше, ось речі, де обидва API мають однакову кінцеву функціональність:
- Обидва безкоштовні
- Стиль комірки: вирівнювання, фони (кольори та візерунки), межі (типи та кольори), підтримка шрифтів (назви шрифтів, кольори, розмір, жирний шрифт, курсив, закреслення, підкреслення)
- Формули
- Гіперпосилання
- Злиті регіони клітин
- Розмір рядків і стовпців
- Форматування даних: цифри та дати
- Обтікання тексту всередині комірок
- Заморозити панелі
- Підтримка верхнього / нижнього колонтитула
- Читання / запис існуючих та нових електронних таблиць
- Обидва намагаються зберегти існуючі об’єкти в електронних таблицях, які вони читають, у цілості, наскільки це можливо.
Однак є багато відмінностей:
- Мабуть, найбільш суттєвою відмінністю є те, що Java JXL не підтримує формат Excel 2007+ ".xlsx"; він підтримує лише старий формат BIFF (двійковий) ".xls". Apache POI підтримує як спільний дизайн.
- Крім того, частина Java-файлу API JXL востаннє оновлена в 2009 році (3 роки 4 місяці тому, коли я це пишу), хоча, схоже, існує API C #. POI Apache активно підтримується.
- JXL не підтримує умовне форматування, Apache POI підтримує, хоча це не настільки важливо, оскільки ви можете умовно форматувати комірки за допомогою власного коду.
- JXL не підтримує форматування насиченого тексту , тобто різне форматування в текстовому рядку; POI Apache підтримує це.
- JXL підтримує лише певні обертання тексту: горизонтальний / вертикальний, +/- 45 градусів та складений; POI Apache підтримує будь-яку цілу кількість градусів плюс складені.
- JXL не підтримує малювання фігур; Apache POI робить.
- JXL підтримує більшість параметрів налаштування сторінки, таких як альбомний / портретний, поля, розмір паперу та масштабування. POI Apache підтримує все це, а також повторювані рядки та стовпці.
- JXL не підтримує розділені панелі; Apache POI робить.
- JXL не підтримує створення та маніпулювання діаграмою; цієї підтримки поки що немає в Apache POI, але API поступово починає формуватися.
- Apache POI має більш широкий набір документації та прикладів, ніж JXL.
Крім того, POI містить не лише основний API "usermodel", а й API на основі подій, якщо все, що ви хочете зробити, - це прочитати вміст електронної таблиці.
На закінчення, завдяки кращій документації, більшій кількості функцій, активній розробці та підтримці формату Excel 2007+, я використовую Apache POI.