Export To Excel

A question that is often raised is, "How can I export my table data to an Excel file?". DataTables along with TableTools is capable of exporting table data to csv, and pdf file formats but when it comes to exporting to an Excel format, TableTools can't really perform this function. Even though the example shown at http://datatables.net/extras/tabletools/ displays a button to export to Excel, it really doesn't create an Excel file. What it really creates is a CSV (Comma Separated Values) file. Excel is certainly capable of opening a CSV file, but that isn't quite the same thing. For a true conversion, we will need to employ a Java library of classes known as POI. You can find it at http://poi.apache.org/.

In order to accomplish our task we are going to require the following dependency jar files:

These files need to be included in the WEB-INF/lib directory of your Java project.

To keep our demonstration simple, we load up DataTables directly with static data. That is, it doesn't get it's data from a database source. The trick to making this work is by using some JQuery code on the client side in order to create a JSON string that will represent our table and all its data, then sending the JSON string by way of a hidden HTML form to a Servlet that will take the JSON string, de-serialize it using GSON into an actual Table object, and from there we use the classes within the POI library to create our Excel file. Once completed, the Servlet responds by returning a file named data_yyyy-MM-dd.xlsx.

Below the table you will see an Excel icon. If you click on it, the browser will download your Excel file. View the Tab control below to see how all the code comes together to perform this vital function. The code is commented and should provide most of the thought processes required for this example. It is worth noting, that we can perform this very same example without the use of DataTables. See Export To Excel Without DataTables to explore this option.

Live example


Rendering Engine Browser Platform(s) Engine Version CSS Grade
Trident Internet Explorer 4.0 Win 95+ 4 X
Trident Internet Explorer 5.0 Win 95+ 5 C
Trident Internet Explorer 5.5 Win 95+ 5.5 A
Trident Internet Explorer 6 Win 98+ 6 A
Trident Internet Explorer 7 Win XP SP2+ 7 A
Trident AOL browser (AOL desktop) Win XP 6 A
Gecko Firefox 1.0 Win 98+ / OSX.2+ 1.7 A
Gecko Firefox 1.5 Win 98+ / OSX.2+ 1.8 A
Gecko Firefox 2.0 Win 98+ / OSX.2+ 1.8 A
Gecko Firefox 3.0 Win 2k+ / OSX.3+ 1.9 A
Gecko Camino 1.0 OSX.2+ 1.8 A
Gecko Camino 1.5 OSX.3+ 1.8 A
Gecko Netscape 7.2 Win 95+ / Mac OS 8.6-9.2 1.7 A
Gecko Netscape Browser 8 Win 98SE+ 1.7 A
Gecko Netscape Navigator 9 Win 98+ / OSX.2+ 1.8 A
Gecko Mozilla 1.0 Win 95+ / OSX.1+ 1 A
Gecko Mozilla 1.1 Win 95+ / OSX.1+ 1.1 A
Gecko Mozilla 1.2 Win 95+ / OSX.1+ 1.2 A
Gecko Mozilla 1.3 Win 95+ / OSX.1+ 1.3 A
Gecko Mozilla 1.4 Win 95+ / OSX.1+ 1.4 A
Gecko Mozilla 1.5 Win 95+ / OSX.1+ 1.5 A
Gecko Mozilla 1.6 Win 95+ / OSX.1+ 1.6 A
Gecko Mozilla 1.7 Win 98+ / OSX.1+ 1.7 A
Gecko Mozilla 1.8 Win 98+ / OSX.1+ 1.8 A
Gecko Seamonkey 1.1 Win 98+ / OSX.2+ 1.8 A
Gecko Epiphany 2.20 Gnome 1.8 A
Webkit Safari 1.2 OSX.3 125.5 A
Webkit Safari 1.3 OSX.3 312.8 A
Webkit Safari 2.0 OSX.4+ 419.3 A
Webkit Safari 3.0 OSX.4+ 522.1 A
Webkit OmniWeb 5.5 OSX.4+ 420 A
Webkit iPod Touch / iPhone iPod 420.1 A
Webkit S60 S60 413 A
Presto Opera 7.0 Win 95+ / OSX.1+ - A
Presto Opera 7.5 Win 95+ / OSX.2+ - A
Presto Opera 8.0 Win 95+ / OSX.2+ - A
Presto Opera 8.5 Win 95+ / OSX.2+ - A
Presto Opera 9.0 Win 95+ / OSX.3+ - A
Presto Opera 9.2 Win 88+ / OSX.3+ - A
Presto Opera 9.5 Win 88+ / OSX.3+ - A
Presto Opera for Wii Wii - A
Presto Nokia N800 N800 - A
Presto Nintendo DS browser Nintendo DS 8.5 C/A1
KHTML Konqureror 3.1 KDE 3.1 3.1 C
KHTML Konqureror 3.3 KDE 3.3 3.3 A
KHTML Konqureror 3.5 KDE 3.5 3.5 A
Tasman Internet Explorer 4.5 Mac OS 8-9 - X
Tasman Internet Explorer 5.1 Mac OS 7.6-9 1 C
Tasman Internet Explorer 5.2 Mac OS 8-X 1 C
Misc NetFront 3.1 Embedded devices - C
Misc NetFront 3.4 Embedded devices - A
Misc Dillo 0.8 Embedded devices - X
Misc Links Text only - X
Misc Lynx Text only - X
Misc IE Mobile Windows Mobile 6 - C
Misc PSP browser PSP - C
Other browsers All others - - U
Rendering Engine Browser Platform(s) Engine Version CSS Grade


Export To Excel

Javascript
HTML
web.xml
Servlet
Includes