Jqgrid table data export instance

  • 2020-03-29 23:55:57
  • OfStack

First, a javascript script:


  
function getXlsFromTbl(table_id, container_id ,form_id, title, rownumbers) {  
    try {  
        var content = "";  

  
        if (table_id != null && table_id != "" && table_id != "null") {  
        <SPAN style="WHITE-SPACE: pre"> </SPAN>content = getTblData($('#' + table_id), $('#' + container_id), rownumbers);  
        }  
        if (content == "") {  
            alert(" The table does not exist ");  
            return;  
        }  
        var fileName = getExcelFileName(title);  

        doFileExport($('#' + form_id), fileName, content);  
    }  
    catch (e) {  
        alert(" Export the abnormal :" + e.name + "->" + e.description + "!");  
    }  
}  
function getTblData(tableobj, containerobj, rownumbers) {  

  
    var outStr = "";  
    if (tableobj != null) {  
        var rowdata = tableobj.getRowData();  
        var Lenr = 1;  

  
        for (i = 0; i < Lenr; i++) {  
            //var Lenc = curTbl.rows(i).cells.length;   
            var th;  
            if (rownumbers == false) {  
                th = containerobj.find('TH:not(:first-child)');  
            }  
            else {  
                th = containerobj.find('TH');  
            }  
            th.each(function(index, element) {  
                var j = index + 1;  
                var content = $(element).text();  
                content = content.replace(/(^s*)|(s*$)/g, "");//Minus the space & cake;  
                outStr += content + ",";  
            });  
            outStr += "+nl+";  
        }  
        var tmp = "";  
        for (i = 0; i < rowdata.length; i++) {  
            var row = eval(rowdata[i]);  
            for (each in row) {  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>var temp = $(row[each]).text();  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>if($(row[each]).text() == null || $(row[each]).text() == ""){  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>if(row[each].charAt(0) != '<')  
            <SPAN style="WHITE-SPACE: pre">           </SPAN>outStr += row[each] + ",";  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>}  
            <SPAN style="WHITE-SPACE: pre">   </SPAN>else  
            <SPAN style="WHITE-SPACE: pre">       </SPAN>outStr += $(row[each]).text() + ",";  
            }  
            outStr += "+nl+";  
        }  
    }  
    else {  
        outStr = null;  
        alert(inTbl + " null!");  
    }  
    return outStr;  
}  
function getExcelFileName(title) {  
    var d = new Date();  
    var curYear = d.getYear();  
    var curMonth = "" + (d.getMonth() + 1);  
    var curDate = "" + d.getDate();  
    var curHour = "" + d.getHours();  
    var curMinute = "" + d.getMinutes();  
    var curSecond = "" + d.getSeconds();  
    if (curMonth.length == 1) {  
        curMonth = "0" + curMonth;  
    }  
    if (curDate.length == 1) {  
        curDate = "0" + curDate;  
    }  
    if (curHour.length == 1) {  
        curHour = "0" + curHour;  
    }  
    if (curMinute.length == 1) {  
        curMinute = "0" + curMinute;  
    }  
    if (curSecond.length == 1) {  
        curSecond = "0" + curSecond;  
    }  
    var fileName = title + "_" + curYear + curMonth + curDate + "_"  
            + curHour + curMinute + curSecond + ".csv";  

  
    return fileName;  
}  
function doFileExport(formobj, filename, content) {  
<SPAN style="WHITE-SPACE: pre"> </SPAN>formobj.html("<input id='filename' name='filename' type='text' style='display: none'><input id='content' name='content' type='text' style='display: none'>");  
    $("#filename").val(filename);  
    $("#content").val(content);  
    formobj.submit();  
}   

Then there's the javascript for the page call:


<form id="download_form" method="post"  target="_blank" action="downLoadTableDataAction">  


<div id="table_container">  
<SPAN style="WHITE-SPACE: pre"> </SPAN><table id="keyword_detail"></table>  
<SPAN style="WHITE-SPACE: pre"> </SPAN><div id="footer"></div>  
</div>  


//Download    
$('#download_file').click(function() {  
    getXlsFromTbl('keyword_detail', 'table_container' ,'download_form', ' Keywords detailed data ', true)  
});  


Related articles: