Tôi đã sử dụng cả JXL (bây giờ là "JExcel") và Apache POI . Lúc đầu tôi sử dụng JXL, nhưng bây giờ tôi sử dụng Apache POI.
Đầu tiên, đây là những thứ mà cả hai API đều có chức năng cuối giống nhau:
- Cả hai đều miễn phí
- Kiểu ô: căn chỉnh, nền (màu và mẫu), đường viền (loại và màu), hỗ trợ phông chữ (tên phông chữ, màu, kích thước, đậm, nghiêng, gạch ngang, gạch chân)
- Công thức
- Siêu liên kết
- Các vùng ô được hợp nhất
- Kích thước của hàng và cột
- Định dạng dữ liệu: Số và Ngày
- Gói văn bản trong ô
- Panes đóng băng
- Hỗ trợ đầu trang / chân trang
- Đọc / Viết bảng tính hiện có và bảng tính mới
- Cả hai đều cố gắng giữ nguyên vẹn các đối tượng hiện có trong bảng tính mà chúng đọc càng nhiều càng tốt.
Tuy nhiên, có nhiều điểm khác biệt:
- Có lẽ sự khác biệt đáng kể nhất là Java JXL không hỗ trợ định dạng Excel 2007+ ".xlsx"; nó chỉ hỗ trợ định dạng BIFF (nhị phân) ".xls" cũ. Apache POI hỗ trợ cả hai với một thiết kế chung.
- Ngoài ra, phần Java của API JXL được cập nhật lần cuối vào năm 2009 (3 năm, 4 tháng trước khi tôi viết phần này), mặc dù có vẻ như có API C #. Apache POI được duy trì tích cực.
- JXL không hỗ trợ Định dạng có điều kiện, Apache POI thì có, mặc dù điều này không quá quan trọng, vì bạn có thể định dạng có điều kiện các ô bằng mã của riêng mình.
- JXL không hỗ trợ định dạng văn bản đa dạng thức, tức là các định dạng khác nhau trong một chuỗi văn bản; Apache POI không hỗ trợ nó.
- JXL chỉ hỗ trợ một số cách xoay văn bản nhất định: ngang / dọc, +/- 45 độ và xếp chồng lên nhau; Apache POI hỗ trợ bất kỳ số nguyên độ nào cộng với xếp chồng lên nhau.
- JXL không hỗ trợ vẽ hình dạng; Apache POI thì có.
- JXL hỗ trợ hầu hết các cài đặt Thiết lập Trang như Ngang / Chân dung, Lề, Khổ giấy và Thu phóng. Apache POI hỗ trợ tất cả những điều đó cộng với các hàng và cột lặp lại.
- JXL không hỗ trợ Ngăn chia; Apache POI thì có.
- JXL không hỗ trợ tạo hoặc thao tác biểu đồ; hỗ trợ đó chưa có trong Apache POI, nhưng một API đang dần bắt đầu hình thành.
- Apache POI có sẵn một bộ tài liệu và ví dụ phong phú hơn JXL.
Ngoài ra, POI không chỉ chứa API "usermodel" chính mà còn chứa API dựa trên sự kiện nếu tất cả những gì bạn muốn làm là đọc nội dung bảng tính.
Kết luận, vì tài liệu tốt hơn, nhiều tính năng hơn, phát triển tích cực và hỗ trợ định dạng Excel 2007+, tôi sử dụng Apache POI.