Release Notes

v3.0.0

  • Java 17
  • see migration guide
  • new website, cover photo by Domagoj Ćosić
  • We advise against using POI > 5.2.2.

v2.14.0

v2.13.0

v2.12.0

With change #73 it's possible to throw exceptions instead of logging them as ERROR:

transformer.setExceptionHandler(new PoiExceptionThrower());
transformer.getTransformationConfig().setExpressionEvaluator(new JexlExpressionEvaluator(false, true));

v2.11.0

The release contains an upgrade of JEXL library and a fix for XXE vulnerability

v2.10.0

New features and fixed bugs

other resolved issues:

v2.9.0

With this version we migrated from BitBucket to Github.

A list of resolved issues

v2.8.1

The release contains a critical bug-fix for a specific case of formulas processing. See issue#210 SUM with empty lists when more than 1 sheet doesn't work for more detail.

v2.8.0

The release brings many bug-fixes and some improvements, in particular

A list of resolved issues

Compatibility notes and future plans
  • Signature of createTransformer() has been changed. The throws has been removed. Now the unchecked CannotOpenWorkbookException will be thrown.
  • jx:each and jx:grid now treat null lists as empty lists (see issue#200 )
  • POI 4.0 requires Java 8 and so it is the recommended version to use. Jxls code base will be migrated to Java 8 syntax in the upcoming versions.
  • The major change in 2.9.0 will be the move to Github. Our homepage and publishing to Maven-central will stay the same.

v2.7.2

This release fixes issue#188 Referencing other sheet in Jxls-processed cell formula replaces formula with "=0" .

Also it reverts back the behaviour from previous Jxls releases (2.6.0 and earlier) where the POI formulas evaluation was not triggered by default. See corresponding section on Excel Formulas page for more information on how to enable POI formulas evaluation if you need it.

v2.7.1

This is a bugfix release fixing the following issue

v2.7.0

Besides many bug-fixes (see below) this release has the following changes

  • Added POI 4.1.0 compatibility
  • Introduced varIndex variable to get iteration index in jx:each
  • Removed Jexcel module

bug-fixes and changes:

v2.6.0

v2.5.1

Added a default implementation for the Transformer.adjustTableSize method to make jxls-2.5.x compatible with the previous releases of jxls-poi

v2.5.0

This release features Table support and an option to use an expression for multi-sheet generation.

Thanks to Marcus Warm and zangloo for the contributions!

jxls-2.5.0

jxls-poi-1.1.0

jxls-jexcel-1.0.8

  • issue#88 No table support for jxls-jexcel

v2.4.7

jxls-2.4.7

jxls-poi-1.0.16

  • support for Apache POI 4.0.0

jxls-reader-2.0.5

  • support for Apache POI 4.0.0
  • reverted the fix for "XLSBlockReader startRow/endRow not work" merged earlier in PR#5

v2.4.6

v2.4.5

The following issues have been fixed

v2.4.4

v2.4.3

v2.4.2

This a bug-fix release fixing

v2.4.1

This release features several bug-fixes and a few improvements

v2.4.0

This release features

  • UpdateCellCommand for cell processing customization
  • Grouping support in EachCommand

The following bugs have been fixed

v2.3.0

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.

v2.2.9

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

v2.2.8

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

v2.2.7

  • Added an option to use SQL queries in Excel Template. See Database page.
  • 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)

v2.2.6

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

v2.2.5

Improvements for ImageCommand

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

v2.2.4

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

v2.2.3

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

v2.2.2

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

v2.2.1

  • 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.

v2.2.0

###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. [[]])

###Bugs fixed

v2.1.1

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.

v2.1.0

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

v2.0.0

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.