
With POI, you must check it's cell type, then get it's value (if it's Numeric cell, you need to check if it's a Date cell) according it's type, and finally convert it to String value with different methods, that's so inconvenient. The dirty getContents() method in JExcelAPI save me a lot of time. In conclusion, because of the better documentation, more features, active development, and Excel 2007+ format support, I use Apache POI.
Apache POI has a more extensive set of documentation and examples available than JXL.Īdditionally, POI contains not just the main "usermodel" API, but also an event-based API if all you want to do is read the spreadsheet content. JXL doesn't support Chart creation or manipulation that support isn't there yet in Apache POI, but an API is slowly starting to form. JXL doesn't support Split Panes Apache POI does. Java jxl landscape plus#
Apache POI supports all of that plus Repeating Rows and Columns.
JXL supports most Page Setup settings such as Landscape/Portrait, Margins, Paper size, and Zoom. JXL doesn't support drawing shapes Apache POI does. JXL only supports certain text rotations: horizontal/vertical, +/- 45 degrees, and stacked Apache POI supports any integer number of degrees plus stacked. different formatting within a text string Apache POI does support it. JXL doesn't support rich text formatting, i.e. JXL doesn't support Conditional Formatting, Apache POI does, although this is not that significant, because you can conditionally format cells with your own code.
Additionally, the Java portion of the JXL API was last updated in 2009 (3 years, 4 months ago as I write this), although it looks like there is a C# API. Apache POI supports both with a common design. Perhaps the most significant difference is that Java JXL does not support the Excel 2007+ ".xlsx" format it only supports the old BIFF (binary) ".xls" format.
Both attempt to keep existing objects in spreadsheets they read in intact as far as possible. Read/Write existing and new spreadsheets. Cell styling: alignment, backgrounds (colors and patterns), borders (types and colors),įont support (font names, colors, size, bold, italic, strikeout, underline). At first I used JXL, but now I use Apache POI.įirst, here are the things where both APIs have the same end functionality: I have used both JXL (now "JExcel") and Apache POI.