Użyłem zarówno JXL (teraz „JExcel”), jak i Apache POI . Na początku korzystałem z JXL, ale teraz używam Apache POI.
Po pierwsze, oto rzeczy, w których oba interfejsy API mają tę samą funkcjonalność końcową:
- Oba są bezpłatne
- Stylizacja komórek: wyrównanie, tła (kolory i wzory), obramowania (typy i kolory), obsługa czcionek (nazwy czcionek, kolory, rozmiar, pogrubienie, kursywa, przekreślenie, podkreślenie)
- Formuły
- Hiperłącza
- Połączone regiony komórkowe
- Rozmiar wierszy i kolumn
- Formatowanie danych: liczby i daty
- Zawijanie tekstu w komórkach
- Zablokuj okienka
- Obsługa nagłówków / stopek
- Odczytywanie / zapisywanie istniejących i nowych arkuszy kalkulacyjnych
- Obaj starają się zachować istniejące obiekty w czytanych arkuszach kalkulacyjnych w jak największym stopniu nienaruszone.
Istnieje jednak wiele różnic:
- Być może najbardziej znaczącą różnicą jest to, że Java JXL nie obsługuje formatu „.xlsx” programu Excel 2007+; obsługuje tylko stary format BIFF (binarny) „.xls”. Apache POI obsługuje oba te elementy w ramach wspólnego projektu.
- Dodatkowo część Java JXL API została ostatnio zaktualizowana w 2009 roku (3 lata, 4 miesiące temu, kiedy to piszę), chociaż wygląda na to, że istnieje C # API. Apache POI jest aktywnie utrzymywany.
- JXL nie obsługuje formatowania warunkowego, Apache POI tak, chociaż nie jest to aż tak istotne, ponieważ można warunkowo formatować komórki własnym kodem.
- JXL nie obsługuje bogaty tekst formatowania, tj innego formatowania w ciągu tekstowym; Apache POI to obsługuje.
- JXL obsługuje tylko niektóre obroty tekstu: poziome / pionowe, +/- 45 stopni i ułożone; Apache POI obsługuje dowolną liczbę całkowitą stopni oraz stos.
- JXL nie obsługuje rysowania kształtów; Apache POI tak.
- JXL obsługuje większość ustawień strony, takich jak pozioma / pionowa, marginesy, rozmiar papieru i powiększenie. Apache POI obsługuje to wszystko plus powtarzające się wiersze i kolumny.
- JXL nie obsługuje Split Panes; Apache POI tak.
- JXL nie obsługuje tworzenia ani manipulacji wykresami; tego wsparcia jeszcze nie ma w Apache POI, ale API powoli zaczyna się tworzyć.
- Apache POI ma szerszy zestaw dokumentacji i przykładów niż JXL.
Ponadto POI zawiera nie tylko główny interfejs API „model użytkownika”, ale także interfejs API oparty na zdarzeniach, jeśli wszystko, co chcesz zrobić, to przeczytać zawartość arkusza kalkulacyjnego.
Podsumowując, ze względu na lepszą dokumentację, więcej funkcji, aktywny rozwój i obsługę formatu Excel 2007+, używam Apache POI.