Excel generation is required in many Java applications that have some kind of reporting functionality.
The most complete library to manipulate XLS files from Java is
Jakarta POI library.
The problems appear when it is required to create a lot of custom and complex Excel reports with rich formatting and enhanced functionality.
In this case you have to write a great bunch of Java code for creating workbook with all required formatting, formulas and other specific settings and correctly export data from a set of Java objects.
Such code is hard to debug and the task of its creating is usually errorprone and timeconsuming. The other problem is that there are many Excel components for which there is no manipulation API provided.
POI API allows to read Excel file trying to preserve it as is and then modify it as required.It is obvious it would be much easier to create all correctly formatted report template in some Excel editing tool and specify places where real data should appear.
jXLS is a project that implements this approach and allows creation of extremely complex Excel reports just in several lines of code.
All you need is to create XLS template file with all required formatting, formulas, macros etc using
specific notation to indicate placement of data and then write a couple lines of code to invoke jXLS engine passing XLS template and the exported data as parameters.
- Using SQL queries directly in XLS templates
- Simple property access notation
- Full expression language support
- Complex object graph export
- Flexible collection export
- Flow-Control Tags support
- Dynamic grouping of data
- Export of a single collection into multiple worksheets
- Adjacent tables support!
- Complex formulas support
- Charts, Macros and many other Excel features in XLS template
- Dynamic Outlines
- Dynamic Columns Hiding
- Dynamic Cell Style processing through custom Processors
- JDBC ResultSet export
- Merged Cells support
- Multiple bean properties in a single cell
- Reading XLS files
Jakarta POI when reading and writing XLS files. Particularly it means you can use Charts and Macros in your XLS template and many other features
Using jXLS and jXLSUtiltiy.cfc to export Excel files