diff --git a/tableExport.js b/tableExport.js index 1bfaa0fc..fa338b76 100644 --- a/tableExport.js +++ b/tableExport.js @@ -20,340 +20,344 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.*/ -(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; - } +(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 = $.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; - } + $(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); - }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); + }); + + //output + if (defaults.consoleLog == 'true') { + console.log(tdData); + } + + var str1= atob($.base64.encode(tdData)); + var blob = new Blob([str1], {type: "application/octet-stream"}); + saveAs(blob, 'marketing-' + Date.now() + ".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 = $.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)) + '",'; - } + $(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))); - } + + 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))); - } + 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 += ''; - - // Header - $(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){ - xml += "" + 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 += ''; + + // Header + $(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) { + xml += "" + parseString($(this)) + ""; } - }); - }); - xml += ''; - - // Row Vs Column - var rowCount=1; - $(el).find('tbody').find('tr').each(function() { - xml += ''; - var colCount=0; - $(this).filter(':visible').find('td').each(function(index,data) { - if ($(this).css('display') != 'none'){ - if(defaults.ignoreColumn.indexOf(index) == -1){ - xml += ""+parseString($(this))+""; - } + } + }); + }); + xml += ''; + + // Row Vs Column + var rowCount = 1; + $(el).find('tbody').find('tr').each(function () { + xml += ''; + var colCount = 0; + $(this).filter(':visible').find('td').each(function (index, data) { + if ($(this).css('display') != 'none') { + if (defaults.ignoreColumn.indexOf(index) == -1) { + xml += "" + parseString($(this)) + ""; } - colCount++; - }); - rowCount++; - xml += ''; - }); - xml += '' - - if(defaults.consoleLog == 'true'){ - console.log(xml); - } - - var base64data = "base64," + $.base64.encode(xml); - window.open('data:application/xml;filename=exportData;' + base64data); - - }else if(defaults.type == 'excel' || defaults.type == 'doc'|| defaults.type == 'powerpoint' ){ - //console.log($(this).html()); - var excel=""; - // Header - $(el).find('thead').find('tr').each(function() { - excel += ""; - $(this).filter(':visible').find('th').each(function(index,data) { - if ($(this).css('display') != 'none'){ - if(defaults.ignoreColumn.indexOf(index) == -1){ - excel += ""; - } + } + colCount++; + }); + rowCount++; + xml += ''; + }); + xml += '' + + if (defaults.consoleLog == 'true') { + console.log(xml); + } + + var base64data = "base64," + $.base64.encode(xml); + window.open('data:application/xml;filename=exportData;' + base64data); + + } else if (defaults.type == 'excel' || defaults.type == 'doc' || defaults.type == 'powerpoint') { + //console.log($(this).html()); + var excel = "
" + parseString($(this))+ "
"; + // Header + $(el).find('thead').find('tr').each(function () { + excel += ""; + $(this).filter(':visible').find('th').each(function (index, data) { + if ($(this).css('display') != 'none') { + if (defaults.ignoreColumn.indexOf(index) == -1) { + excel += ""; } - }); - excel += ''; - - }); - - - // Row Vs Column - var rowCount=1; - $(el).find('tbody').find('tr').each(function() { - excel += ""; - var colCount=0; - $(this).filter(':visible').find('td').each(function(index,data) { - if ($(this).css('display') != 'none'){ - if(defaults.ignoreColumn.indexOf(index) == -1){ - excel += ""; - } + } + }); + excel += ''; + + }); + + + // Row Vs Column + var rowCount = 1; + $(el).find('tbody').find('tr').each(function () { + excel += ""; + var colCount = 0; + $(this).filter(':visible').find('td').each(function (index, data) { + if ($(this).css('display') != 'none') { + if (defaults.ignoreColumn.indexOf(index) == -1) { + excel += ""; } - colCount++; - }); - rowCount++; - excel += ''; - }); - excel += '
" + parseString($(this)) + "
"+parseString($(this))+"
" + parseString($(this)) + "
' - - if(defaults.consoleLog == 'true'){ - console.log(excel); - } - - var excelFile = ""; - excelFile += ""; - excelFile += ""; - excelFile += ""; - excelFile += ""; - excelFile += excel; - excelFile += ""; - excelFile += ""; - - var base64data = "base64," + $.base64.encode(excelFile); - window.open('data:application/vnd.ms-'+defaults.type+';filename=exportData.doc;' + base64data); - - }else if(defaults.type == 'png'){ - html2canvas($(el), { - onrendered: function(canvas) { - var img = canvas.toDataURL("image/png"); - window.open(img); - - } - }); - }else if(defaults.type == 'pdf'){ - - var doc = new jsPDF('p','pt', 'a4', true); - doc.setFontSize(defaults.pdfFontSize); - - // Header - var startColPosition=defaults.pdfLeftMargin; - $(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){ - var colPosition = startColPosition+ (index * 50); - doc.text(colPosition,20, parseString($(this))); - } + colCount++; + }); + rowCount++; + excel += ''; + }); + excel += '' + + if (defaults.consoleLog == 'true') { + console.log(excel); + } + + var excelFile = ""; + excelFile += ""; + excelFile += ""; + excelFile += ""; + excelFile += ""; + excelFile += excel; + excelFile += ""; + excelFile += ""; + + var str1= atob($.base64.encode(excelFile)); + var blob = new Blob([str1], {type: "application/octet-stream"}); + saveAs(blob, 'marketing-' + Date.now() + ".xls"); + + } else if (defaults.type == 'png') { + html2canvas($(el), { + onrendered: function (canvas) { + var img = canvas.toDataURL("image/png"); + window.open(img); + + + } + }); + } else if (defaults.type == 'pdf') { + + var doc = new jsPDF('p', 'pt', 'a4', true); + doc.setFontSize(defaults.pdfFontSize); + + // Header + var startColPosition = defaults.pdfLeftMargin; + $(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) { + var colPosition = startColPosition + (index * 50); + doc.text(colPosition, 20, parseString($(this))); } - }); - }); - - - // Row Vs Column - var startRowPosition = 20; var page =1;var rowPosition=0; - $(el).find('tbody').find('tr').each(function(index,data) { - rowCalc = index+1; - - if (rowCalc % 26 == 0){ + } + }); + }); + + + // Row Vs Column + var startRowPosition = 20; var page = 1; var rowPosition = 0; + $(el).find('tbody').find('tr').each(function (index, data) { + rowCalc = index + 1; + + if (rowCalc % 26 == 0) { doc.addPage(); page++; - startRowPosition=startRowPosition+10; + startRowPosition = startRowPosition + 10; } - rowPosition=(startRowPosition + (rowCalc * 10)) - ((page -1) * 280); - - $(this).filter(':visible').find('td').each(function(index,data) { - if ($(this).css('display') != 'none'){ - if(defaults.ignoreColumn.indexOf(index) == -1){ - var colPosition = startColPosition+ (index * 50); - doc.text(colPosition,rowPosition, parseString($(this))); - } + rowPosition = (startRowPosition + (rowCalc * 10)) - ((page - 1) * 280); + + $(this).filter(':visible').find('td').each(function (index, data) { + if ($(this).css('display') != 'none') { + if (defaults.ignoreColumn.indexOf(index) == -1) { + var colPosition = startColPosition + (index * 50); + doc.text(colPosition, rowPosition, parseString($(this))); } - - }); - - }); - - // Output as Data URI - doc.output('datauri'); - + } + + }); + + }); + + // Output as Data URI + doc.output('datauri'); + + } + + + function parseString(data) { + + if (defaults.htmlContent == 'true') { + content_data = data.html().trim(); + } else { + content_data = data.text().trim(); } - - - function parseString(data){ - - if(defaults.htmlContent == 'true'){ - content_data = data.html().trim(); - }else{ - content_data = data.text().trim(); - } - - if(defaults.escape == 'true'){ - content_data = escape(content_data); - } - - - - return content_data; + + if (defaults.escape == 'true') { + content_data = escape(content_data); } - + + + + return content_data; } - }); - })(jQuery); - + + } + }); +})(jQuery); +