| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 | (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 version="1.0" encoding="utf-8"?>';                xml += '<tabledata><fields>';                // 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 += "<field>" + parseString($(this)) + "</field>";                            }                        }                    });                });                xml += '</fields><data>';                // Row Vs Column                var rowCount = 1;                $(el).find('tbody').find('tr').each(function () {                    xml += '<row id="' + rowCount + '">';                    var colCount = 0;                    $(this).filter(':visible').find('td').each(function (index, data) {                        if ($(this).css('display') != 'none') {                            if (defaults.ignoreColumn.indexOf(index) == -1) {                                xml += "<column-" + colCount + ">" + parseString($(this)) + "</column-" + colCount + ">";                            }                        }                        colCount++;                    });                    rowCount++;                    xml += '</row>';                });                xml += '</data></tabledata>'                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 = "<table>";                // Header                $(el).find('thead').find('tr').each(function () {                    excel += "<tr>";                    $(this).filter(':visible').find('th').each(function (index, data) {                        if ($(this).css('display') != 'none') {                            if (defaults.ignoreColumn.indexOf(index) == -1) {                                excel += "<td>" + parseString($(this)) + "</td>";                            }                        }                    });                    excel += '</tr>';                });                // Row Vs Column                var rowCount = 1;                $(el).find('tbody').find('tr').each(function () {                    excel += "<tr>";                    var colCount = 0;                    $(this).filter(':visible').find('td').each(function (index, data) {                        if ($(this).css('display') != 'none') {                            if (defaults.ignoreColumn.indexOf(index) == -1) {                                excel += "<td>" + parseString($(this)) + "</td>";                            }                        }                        colCount++;                    });                    rowCount++;                    excel += '</tr>';                });                excel += '</table>'                if (defaults.consoleLog == 'true') {                    console.log(excel);                }                var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:" + defaults.type + "' xmlns='http://www.w3.org/TR/REC-html40'>";                excelFile += "<head>";                excelFile += "<!--[if gte mso 9]>";                excelFile += "<xml>";                excelFile += "<x:ExcelWorkbook>";                excelFile += "<x:ExcelWorksheets>";                excelFile += "<x:ExcelWorksheet>";                excelFile += "<x:Name>";                excelFile += "{worksheet}";                excelFile += "</x:Name>";                excelFile += "<x:WorksheetOptions>";                excelFile += "<x:DisplayGridlines/>";                excelFile += "</x:WorksheetOptions>";                excelFile += "</x:ExcelWorksheet>";                excelFile += "</x:ExcelWorksheets>";                excelFile += "</x:ExcelWorkbook>";                excelFile += "</xml>";                excelFile += "<![endif]-->";                excelFile += "</head>";                excelFile += "<body>";                excelFile += excel;                excelFile += "</body>";                excelFile += "</html>";                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)));                            }                        }                    });                });                // 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;                    }                    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');            }            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;            }        }    });})(jQuery);        
 |