(function ($) {
$.fn.extend({
tableExport: function (options) {
var defaults = {
separator: ',',
ignoreColumn: [],
tableName: 'yourTableName',
type: 'csv',
pdfFontSize: 14,
pdfLeftMargin: 20,
escape: 'true',
htmlContent: 'false',
consoleLog: 'false'
};
var options = $.extend(defaults, options);
var el = this;
if (defaults.type == 'csv' || defaults.type == 'txt') {
// Header
var tdData = "";
$(el).find('thead').find('tr').each(function () {
tdData += "\n";
$(this).filter(':visible').find('th').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
tdData += '"' + parseString($(this)) + '"' + defaults.separator;
}
}
});
tdData = $.trim(tdData);
tdData = $.trim(tdData).substring(0, tdData.length - 1);
});
// Row vs Column
$(el).find('tbody').find('tr').each(function () {
tdData += "\n";
$(this).filter(':visible').find('td').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
tdData += '"' + parseString($(this)) + '"' + defaults.separator;
}
}
});
//tdData = $.trim(tdData);
tdData = $.trim(tdData).substring(0, tdData.length - 1);
});
//output
if (defaults.consoleLog == 'true') {
console.log(tdData);
}
var base64data = "base64," + $.base64.encode(tdData);
window.open('data:application/' + defaults.type + ';filename=exportData;' + base64data,'filename.csv');
} else if (defaults.type == 'sql') {
// Header
var tdData = "INSERT INTO `" + defaults.tableName + "` (";
$(el).find('thead').find('tr').each(function () {
$(this).filter(':visible').find('th').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
tdData += '`' + parseString($(this)) + '`,';
}
}
});
tdData = $.trim(tdData);
tdData = $.trim(tdData).substring(0, tdData.length - 1);
});
tdData += ") VALUES ";
// Row vs Column
$(el).find('tbody').find('tr').each(function () {
tdData += "(";
$(this).filter(':visible').find('td').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
tdData += '"' + parseString($(this)) + '",';
}
}
});
tdData = $.trim(tdData).substring(0, tdData.length - 1);
tdData += "),";
});
tdData = $.trim(tdData).substring(0, tdData.length - 1);
tdData += ";";
//output
//console.log(tdData);
if (defaults.consoleLog == 'true') {
console.log(tdData);
}
var base64data = "base64," + $.base64.encode(tdData);
window.open('data:application/sql;filename=exportData;' + base64data);
} else if (defaults.type == 'json') {
var jsonHeaderArray = [];
$(el).find('thead').find('tr').each(function () {
var tdData = "";
var jsonArrayTd = [];
$(this).filter(':visible').find('th').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
jsonArrayTd.push(parseString($(this)));
}
}
});
jsonHeaderArray.push(jsonArrayTd);
});
var jsonArray = [];
$(el).find('tbody').find('tr').each(function () {
var tdData = "";
var jsonArrayTd = [];
$(this).filter(':visible').find('td').each(function (index, data) {
if ($(this).css('display') != 'none') {
if (defaults.ignoreColumn.indexOf(index) == -1) {
jsonArrayTd.push(parseString($(this)));
}
}
});
jsonArray.push(jsonArrayTd);
});
var jsonExportArray = [];
jsonExportArray.push({header: jsonHeaderArray, data: jsonArray});
//Return as JSON
//console.log(JSON.stringify(jsonExportArray));
//Return as Array
//console.log(jsonExportArray);
if (defaults.consoleLog == 'true') {
console.log(JSON.stringify(jsonExportArray));
}
var base64data = "base64," + $.base64.encode(JSON.stringify(jsonExportArray));
window.open('data:application/json;filename=exportData;' + base64data);
} else if (defaults.type == 'xml') {
var xml = '';
xml += '
" + parseString($(this)) + " | "; } } }); excel += '
" + parseString($(this)) + " | "; } } colCount++; }); rowCount++; excel += '