Jqgrid table data export instance


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
});