Changes in version 0.9.4

  • Accessing HSSFRow POI object in template file. See POI Objects Access section
  • Method setSpreadsheetsToHide() of XLSTransformer class was renamed to setSpreadsheetsToRemove() to reflect its real function
  • Many other bug fixes and improvements

Changes in version 0.9.4

  • Accessing HSSFRow POI object in template file. See POI Objects Access section
  • Method setSpreadsheetsToHide() of XLSTransformer class was renamed to setSpreadsheetsToRemove() to reflect its real function
  • Many other bug fixes and improvements

Changes in version 0.9.3

Changes in version 0.9.2

  • New module for reading XLS files and populating Java beans according to XML configuration. See XLS Reader section
  • Select keyword to forEach tag (i.e. >jx:forEach items="..." select="${condition}">. See Using tags section for details.
  • Aggregate functions to the ${...} syntax (i.e. ${sum(field):collection}. See Using Expressions for details
  • Many improvements and optimizations in jx:tags processing mechanism. New jx:out tag.

Changes in version 0.9.1

  • Major issue with inner forEach/if tags fixed
  • java.util.Calendar type support added

Changes in version 0.9

  • Root packages were changed to net.sf.jxls to correspond current project domain
  • Due to formula processing re-engineering to enhance overall performance old-style formulas notation like for example $[SUM(@employees.payment@)] is no longer supported
  • Project build system was migrated to Maven 2
  • Several issues fixed

Note the package modification feature. You have to update jxls package names in your existing code to be able to use jxls-0.9.

Changes in version 0.8.9

  • This release simplifies using quotes inside tag attributes. See SQL Reporting section for an example
  • Fixed issue with merged cells and last column width when using dynamic sheets feature
  • Fixed issue with incorrect formulas for collections containing just 2 items

Changes in version 0.8.8

There were changes related to formula references resolution. Now you can use direct cell references in your template formulas even for duplicated blocks. Still there is a restriction that formulas in exports with dynamic number of columns may not be evaluated properly.

Changes in version 0.8.7

Unfortunately new JEXL expressions support has some tradeoffs and now some custom Cell Processors may no longer work as expected. This applies to the ones which rely on getBean/getBeanName methods of Property class. If custom cell processor was used to apply some formatting based on bean property values you may use jx:forEach/jx:if tags to do the same.

Also you need to remember if you enable JEXL inner collections access support (using setJexlInnerCollectionsAccess( true ) ) method of XLSTransformer you will not be able to use jXLS inner collections any more. Instead jx:forEachTag to iterate inner collections can be used.

Changes in version 0.8.6

Flow-control jx tags support.

New formula cell references support. Also cross-sheet cell references are allowed.

Dynamic worksheets support.

Also there was a lot of refactoring done in this release. You will have to update jXLS package classes imports.

Changes in version 0.8.5

Main feature in this version is Expression Language support.

Pay attention to dynamic cell properties processing changes:

  • CellInfo class was renamed to Cell
  • RowInfo class was renamed to Row
  • Property class was renamed to Property
  • Cell object has been changed. Now Cell object consists of a list of Expression objects and each Expression consists of a list of Property objects

Changes in version 0.8

In jXLS v.0.8 some changes in template notation for collections export were done. It was because of new Adjacent Collections feature

To briefly summarize:

  • To specify dependent rows number when you have multiple rows for each collection item you have to write something like (for 3 rows per collection item) ${department.staff.name}//:3
  • To indicate for a cell that it relates to some collection (in the same row) and so to have the cell to be duplicated for every collection row you should specify collection name separated with // at the end of cell content like Employee Name//department.staffIf you have only one collection in a row you may not specify collection name for empty cells - they will be copied automatically
  • To connect inline formula cell to some collection in the same row you have to specify collection name separated with // after cell label (if any) similar to $[B#*(C#+1)]total//department.staff
  • Changed notation for exporting fixed size collections. Now you don't have to repeat collection properties in every Excel row for such collection. It is required to specify collection properties only in the first row as for common collections.