Directory

TableExport - Vaadin Add-on Directory

Export Tables to Excel TableExport - Vaadin Add-on Directory
This is a common task that comes up time and again. The solution can figured out from various forum posts but it takes a while to put everything together, especially the writing of the Excel file to the browser. This is a Utility class that takes a Table as input and exports a decent Excel file containing the data in the Container. It also handles HierarchicalContainers and the resulting Excel file will have the categories and subcategories properly grouped/outlined. There are a number of configurable properties. The user can specify a worksheet name, a report title, and an output file name. The user can also specify if there should be a Totals row at the bottom of the export. The user can pass in custom POI CellStyles. However, if none of these are specified, the user only needs to pass in a Table. This add-on requires the Apache POI library. The project currently uses poi-3.10-FINAL. This add-on requires the Apache Commons IO library (http://commons.apache.org/io/). The project uses v2.2. The reason for using this version is that it is also a Vaadin 7 dependency. This add-on uses Charles Anthony's solution from: http://vaadin.com/forum/-/message_boards/view_message/159583 The included icon comes from the fugue open source (Creative Commons) icon set.
Discussion Forum
Apache POI Download
Source Code
Issue Tracker

TableExport version 1.0.0
null

TableExport version 1.1.0
A number of enhancements: * Refactored to make TableExports to other formats beside Excel more logical. There is now a TableExport master abstract class, and an ExcelExport specific class. * Refactored the ExcelExport class to make it easier to more granularly override specific functionality. There are a number of ways for users to get the effects they want. One is to override specific methods. Another is to use the setter/getter functionality built-in. Finally, prior to export, specific parts of the Excel workbook object are made accessible. * Enabled having different formats for different cells as opposed to just one format per row. * Added documentation * It now handles borders for the merged report title area * Added handling of Row Headers which are treated just like Column Headers by default, but this can be customized.

TableExport version 1.1.1
Fixed handling of totals calculation for hierarchical data. Summing up the column will count both categories and sub-categories, resulting in double counting. Subtotal excluding invisible cells isn't implemented in POI yet. Further, the subtotal calculation will be wrong when a user expands an outline, making the sub-categories visible. We now put the correct totals in the totals row and leave it as a value, not a formula.

TableExport version 1.1.2
Implemented Martin Elliffe's suggestions from: http://vaadin.com/forum/-/message_boards/view_message/579716 * Ability to exclude collapsed columns * Better null handling * Ability to specify different windows to export to

TableExport version 1.1.3
Two bug fixes. Enhanced demo application to test collapsed columns.

TableExport version 1.1.4
Fixed an issue with mime type. Added getMimeType and setMimeType.

TableExport version 1.1.5
Two small requested enhancements. Exported cells now have the same cell alignment as they had in the Table. Also, visible generated columns are now exported, as long as those generated columns implement ExportableColumnGenerator.

TableExport version 1.2.0
A couple of fixes and enhancements: 1) Proper handling of dates 2) Ability to more granularly set date and double excel export formats (e.g. "mm/dd/yyyy" and "#0.00") by column 3) Fixed issues with table alignment 4) Exported headers now aligned in accord with Vaadin table alignment 5) Enhanced demo application to highlight new features

TableExport version 1.2.1
Fixed a small issue with total row alignment

TableExport version 1.2.2
Fixed an alignment issue. The demo application now tests different alignments.

TableExport version 1.2.3
Improved handling of date and number data formats

TableExport version 1.2.4
Added ability to export to csv. As part of this, add-on now requires Apache Commons IO library (http://commons.apache.org/io/). Added ability to format cells based on Table's formatPropertyValue() Demo application demonstrates both new features More details will be posted on the discussion forum

TableExport version 1.2.5
Fixed two reported bugs

TableExport version 1.2.6
Fixed one small remaining bug pointed out by David Wall

TableExport version 1.2.7
Can handle multiple Table exports into different tabs and can handle different types of POI Workbooks.

TableExport version 1.2.8
Fixed a bug where propIds was not being updated when the table was updated. Also added BigDecimal as a numeric type.

TableExport version 1.2.9
Fixed the empty title row bug found by Andreas

TableExport version 1.3.0
Fixed a bunch of bugs reported by people. On the issues list (http://code.google.com/p/tableexport-for-vaadin/issues/list) these are: 16 - not using hasTotalsRow properly in one of the constructors 17, 23 - crash with hierarchical containers and displayTotals not set. Needed a null check. 18, 24 - I added 23 after seeing a post on the Vaadin board. Turns out these are the same. Using sheetName instead of this.sheetName and sheetName is null. 20 - now doing a File.deleteOnExit() to see if it removes temp files on the server. Also closing a stream properly. 22 - This is the one enhancement. The project now handles all Container.Hierarchical containers, not just the HierarchicalContainer container.

TableExport version 1.4.0
This release makes the add-on work with Vaadin 7. It will no longer work with Vaadin 6. Most of the work for this release was done by AJ Whitney. He made all the changes required by Vaadin 7. I made a few additional changes to get it work on my machine. The functionality remains unchanged. I updated the poi version used which is now poi-3.9-20121203.jar. It still uses commons-io-2.1.jar.

TableExport version 1.5.0
1) Main change is that I Incorporated Thomas Trinn's enhancements making things work with FilteringTable (see forum thread for more details). 2) Mavenized the project 3) Fixed the typo pointed out by Okihara Herbst on the form ("cvs" instead of "csv") 4) Removed some deprecated references. One remains that still needs to be refactored out. 5) Slight changes in the version used for poi (from 3.9 with yyyymmdd to final 3.9) and commons-io (from 2.1 to 2.2)

TableExport version 1.5.1
Fixed pom.xml so it no longer referenced the vodatime widgetset. also upgraded to poi-3.10-FINAL.

TableExport version 1.5.1.1
Fixed pom.xml so it no longer referenced the vodatime widgetset. also upgraded to poi-3.10-FINAL.

TableExport version 1.5.1.2
Now works properly with the FilteringTable add-on. FilteringTable has been added as a dependency.

TableExport version 1.5.1.3
Made DeletingFileInputStream Serializable as well as TableHolder, ExportableFormattedProperty, and XLS2CSVmra.

TableExport version 1.5.1.4
Cleaned up pom.xml. Demo app tested with Vaadin 7.2.3 and with push enabled.

TableExport version 1.5.1.5
Removed vaadin-push as a dependency

TableExport version 1.6.0
Returned to project after being away for a while. Made a couple of updates / fixes. 1) Moved source control and issue management from google code to github (google code shut down) 2) Added functionality contributed by Marco Petris to export to CSV using the Java CSV library. This can avoid the 65,536 row limit but has no additional functionality (e.g. the output column order is alphabetic and there's no way to override formats). See class CsvExportUsingJavaCsv. The relevant version of Java CSV (2.1) wasn't available through Maven so just copied the two small classes of Java CSV into the project. 3) Added an example to the demo app to showcase the Java CSV capability. 4) Upgraded various versions of dependencies in the pom. 5) Fixed a couple of small bugs. Made DefaultTableHolder and CustomTableHolder look for Container.Hierarchical as opposed to HierarchicalContainer (#38). Made inputstream transient to avoid serialization issues (#28).

TableExport version 1.6.1
DefaultTableHolder now accepts Grid and Container. The demo UI has been updated to have an example of a Grid with a GeneratedPropertyContainer.