Version History


This a bug-fix release fixing


Now you can use a markup in Excel template to output a collection into multiple sheets. See Multiple sheets output section and Multi sheet markup example

Also the following issues have been fixed

There are also the following api changes

  • Method createInitialContext() was removed from Transformer interface

    The static method of the same name in PoiTransformer and JexcelTransformer can now be used for the same purpose (e.g. PoiTransformer.createInitialContext())

  • transform method in Transformer interface is now taking an additional parameter boolean updateRowHeight indicating if a row height needs to be updated

  • A new method void updateRowHeight(String srcSheetName, int srcRowNum, String targetSheetName, int targetRowNum) is added to Transformer interface to copy row height from a source row to a target row.


The following issues were fixed

  • Fixed issue#34 Each-command problem with the merge cells
  • Fixed issue#36 Huge performance issue with debug logging
  • Fixed issue#37 Don’t obtrude a logging framework


This release features some bug-fixes and improvements

  • An option to set a default formula value (see Excel formulas for more details)
  • Class api improvements by adding method chaining to JxlsHelper and CellRef classes (contributed by Karri-Pekka Laakso)
  • Fixed issue#24 by adding isFormulaProcessingRequired attribute to Context.Config
  • Fixed issue#29
  • Fixed issue#27
  • Fixed issue#30


  • Added an option to use SQL queries in Excel Template. See SQL usage in template
  • Added an option to specify formula strategy for any given formula allowing to adjust formula calculation
    (you can find a demo of this functionality in FormulaCopyDemo example in jxls-demo project )


Fixed an error when processing an area with multiple nested commands issue#21


Improvements for Image-command

  • imgBean attribute is now renamed to src and supports any expression resulting in image byte array byte[]


  • Each-command now supports setting of direction attribute in Excel template with a text value DOWN or RIGHT
  • Minor refactoring: replacing StringBuffer with StringBuilder


This is a bug-fix release. The following issues were fixed


This is a bug-fix release. The following issues were fixed


  • Better support for SXSSF templates
  • JxlsHelper class to simplify the library usage. Getting Started guide and some of the examples were updated to use JxlsHelper.


New features

  • Possibility to replace JEXL with another expression language engine (see expression language
  • Possibility to replace the default ${} expression notation with the one you like (e.g. [[]])


This release introduces SimpleExporter that allows you to generate an excel with a single line of code and without necessity to provide a template file.


This release introduces new Grid Command and contains the following bug-fixes


First public release for Jxls-2.

Jxls-2 is a full rewrite from scratch of the original Jxls 1.x library to make it much more flexible and improve the performance.

Jxls-2 completely de-couples itself from the underlying Java-to-Excel transformation engine so that it is possible to switch low-level Java-to-Excel library without any code changes.

Excel template markup can now be redefined in a way you like.

Jxls-2 introduces a concept of Command to replace previously used tags (like jx:forEach, jx:if). Command is not tied to any particular Excel mark-up. In fact it can be defined completely in Java or by using built-in Excel-comment or XML-based mark-ups.

Custom post- and pre- processing code can now also be easily injected into Excel transformation.

Please note that Jxls-2 is not backwards compatible with Jxls 1.x.

If you wish to upgrade your existing Jxls 1.x reports for Jxls-2 you will have to rewrite the code and change the notation in XLS template.