Loading repository data…
Loading repository data…
clarketm / repository
The simple, easy-to-implement library to export HTML tables to xlsx, xls, csv, and txt files.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
v3 docs and README:v4 docs and README:v5 docs and README (below):<script> tagsTo use this library, include the FileSaver.js library, and TableExport library before the closing <body> tag of your HTML document:
<script src="FileSaver.js"></script>
...
<script src="tableexport.js"></script>
$ bower install tableexport.js
$ npm install tableexport
| uncompressed | compressed | |
|---|---|---|
| CSS | 🔗 | 🔗 |
| JS | 🔗 | 🔗 |
| Images | — | 🔗xlsx🔗xls🔗csv🔗txt |
In order to provide Office Open XML SpreadsheetML Format ( .xlsx ) support, you must include the following third-party library in your project before both FileSaver.js and TableExport.
Including
xlsx.core.jsis NOT necessary if installing withBowerornpm
<script src="xlsx.core.js"></script>
<script src="FileSaver.js"></script>
...
<script src="tableexport.js"></script>
To support legacy browsers ( Chrome < 20, Firefox < 13, Opera < 12.10, IE < 10, Safari < 6 ) include the Blob.js polyfill before the FileSaver.js script.
Including
Blob.jsis NOT necessary if installing withBowerornpm
<script src="Blob.js"></script>
<script src="FileSaver.js"></script>
...
<script src="tableexport.js"></script>
To use this library, simple call the TableExport constructor:
new TableExport(document.getElementsByTagName("table"));
// OR simply
TableExport(document.getElementsByTagName("table"));
// OR using jQuery
$("table").tableExport();
Additional properties can be passed-in to customize the look and feel of your tables, buttons, and exported data.
Notice that by default, TableExport will create export buttons for three different filetypes xls, csv, txt. You can choose which buttons to generate by setting the formats property to the filetype(s) of your choice.
/* Defaults */
TableExport(document.getElementsByTagName("table"), {
headers: true, // (Boolean), display table headers (th or td elements) in the <thead>, (default: true)
footers: true, // (Boolean), display table footers (th or td elements) in the <tfoot>, (default: false)
formats: ["xlsx", "csv", "txt"], // (String[]), filetype(s) for the export, (default: ['xlsx', 'csv', 'txt'])
filename: "id", // (id, String), filename for the downloaded file, (default: 'id')
bootstrap: false, // (Boolean), style buttons using bootstrap, (default: true)
exportButtons: true, // (Boolean), automatically generate the built-in export buttons for each of the specified formats (default: true)
position: "bottom", // (top, bottom), position of the caption element relative to table, (default: 'bottom')
ignoreRows: null, // (Number, Number[]), row indices to exclude from the exported file(s) (default: null)
ignoreCols: null, // (Number, Number[]), column indices to exclude from the exported file(s) (default: null)
trimWhitespace: true, // (Boolean), remove all leading/trailing newlines, spaces, and tabs from cell text in the exported file(s) (default: false)
RTL: false, // (Boolean), set direction of the worksheet to right-to-left (default: false)
sheetname: "id" // (id, String), sheet name for the exported spreadsheet, (default: 'id')
});
Note: to use the
xlsxfiletype, you must include js-xlsx; reference theAdd-Onssection.
headersfootersformatsfilenamebootstrapexportButtonspositionignoreRowsignoreColstrimWhitespaceRTLsheetnameTableExport supports additional methods (getExportData, update, reset and remove) to control the TableExport instance after creation.
/* First, call the `TableExport` constructor and save the return instance to a variable */
var table = TableExport(document.getElementById("export-buttons-table"));
getExportData/* get export data */
var exportData = table.getExportData(); // useful for creating custom export buttons, i.e. when (exportButtons: false)
/*****************
** exportData ***
*****************
{
"export-buttons-table": {
xls: {
data: "...",
fileExtension: ".xls",
filename: "export-buttons-table",
mimeType: "application/vnd.ms-excel"
},
...
}
};
*/
export2file/* convert export data to a file for download */
var exportData = table.getExportData();
var xlsxData = exportData.table.xlsx; // Replace with the kind of file you want from the exportData
table.export2file(xlsxData.data, xlsxData.mimeType, xlsxData.filename, xlsxData.fileExtension, xlsxData.merges, xlsxData.RTL, xlsxData.sheetname)
getFileSizevar tableId = "export-buttons-table";
var XLS = table.CONSTANTS.FORMAT.XLS;
/* get export data (see `getExportData` above) */
var exportDataXLS = table.getExportData()[tableId][XLS];
/* get file size (bytes) */
var bytesXLS = table.getFileSize(exportDataXLS.data, exportDataXLS.fileExtension);
/**********************************
** bytesXLS (file size in bytes)
**********************************
352
*/
update/* update */
table.update({
filename: "newFile" // pass in a new set of properties
});
reset/* reset */
table.reset(); // useful for a dynamically altered table
remove/* remove */
table.remove(); // removes caption and buttons
Below are some of the popular configurable settings to customize the functionality of the library.
ignoreCSS/**
* CSS selector or selector[] to exclude/remove cells (<td> or <th>) from the exported file(s).
* @type {selector|selector[]}
* @memberof TableExport.prototype
*/
// selector
TableExport.prototype.ignoreCSS = ".tableexport-ignore";
// selector[]
TableExport.prototype.ignoreCSS = [".tableexport-ignore", ".other-ignore-class"];
// OR using jQuery
// selector
$.fn.tableExport.ignoreCSS = ".tableexport-ignore";
// selector[]
$.fn.tableExport.ignoreCSS = [".tableexport-ignore", ".other-ignore-class"];
emptyCSS/**
* CSS selector or selector[] to replace cells (<td> or <th>) with an empty string in the exported file(s).
* @type {selector|selector[]}
* @memberof TableExport.prototype
*/
// selector
TableExport.prototype.emptyCSS = ".tableexport-empty";
// selector[]
TableExport.prototype.emptyCSS = [".tableexport-empty", ".other-empty-class"];
// OR using jQuery
// selector
$.fn.tableEx