Sunday, 9 February 2014

Apache POI VS JExcel

First, here are the things where both APIs have the same end functionality:
·         Both are free
·         Cell styling: alignment, backgrounds (colors and patterns), borders (types and colors), font support (font names, colors, size, bold, italic, strikeout, underline)
·         Formulas
·         Hyperlinks
·         Merged cell regions
·         Size of rows and columns
·         Data formatting: Numbers and Dates
·         Text wrapping within cells
·         Freeze Panes
·         Header/Footer support
·         Read/Write existing and new spreadsheets
·         Both attempt to keep existing objects in spreadsheets they read in intact as far as possible.
However, there are many differences:
·         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. Apache POI supports both with a common design.
·         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 is actively maintained.
·         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.
·         JXL doesn't support rich text formatting, i.e. different formatting within a text string; Apache POI does support it.
·         JXL only supports certain text rotations: horizontal/vertical, +/- 45 degrees, and stacked; Apache POI supports any integer number of degrees plus stacked.
·         JXL doesn't support drawing shapes; Apache POI does.
·         JXL supports most Page Setup settings such as Landscape/Portrait, Margins, Paper size, and Zoom. Apache POI supports all of that plus Repeating Rows and Columns.
·         JXL doesn't support Split Panes; Apache POI does.
·         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.
·         Apache POI has a more extensive set of documentation and examples available than JXL.
Additionally, 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.


  1. I have read your blog its very attractive and impressive. I like it your blog.

    Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

    Java Online Training Java Online Training Core Java 8 Training in Chennai Core java 8 online training JavaEE Training in Chennai Java EE Training in Chennai

  2. I found your blog while searching for the updates, I am happy to be here. Very useful content and also easily understandable providing.
    Believe me I did wrote an post about tutorials for beginners with reference of your blog. 
    Core Java interview questions and answers
    Java training in Tambaram
    Java training in Velachery
    Java training in Omr
    Oracle training in Chennai

  3. I know you feel more happy when you get things done and best of all those things are your most precious treasure.