如何在没有服务器端调用的情况下从JqGrid数据导出到excel?

时间:2014-08-13 18:21:47

标签: javascript jquery jqgrid

互联网上的所有文章均声明需要服务器端调用才能将jqgrid导出为ex​​cel。我正在寻找一种机制,我可以将曾经加载的网格导出到excel而无需拨打电话。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以捕获“导出”按钮的单击事件,然后通过以下javascript循环遍历jqgrid:

$(':button[id=ExportExcel]').click(function () {
for (iRow = 0; iRow < cRows; iRow++) {
    row = rows[iRow];
    if ($(row).hasClass("jqgrow")) {
        cellsOfRow = row.cells;
            $(cellsOfRow[iCol]).text()

               // construct your html table here and then, combining code from below 
            }
       }:

然后使用下面的类似代码填充表准备导出,但使用jqgrid数据作为源而不是下面创建的html表。

function fnExcelReport()
{

    var tab_text="<table><tr>";
    var textRange;
    tab = document.getElementById('TableData'); // id of actual table on your page

    for(j = 0 ; j < tab.rows.length ; j++) 
    {   
        tab_text=tab_text+tab.rows[j].innerHTML;
        tab_text=tab_text+"</tr><tr>";
    }

    tab_text = tab_text+"</tr></table>";

    var txt = document.getElementById('txtArea1').contentWindow;
    txt.document.open("txt/html","replace");

    txt.document.write(tab_text);
    txt.document.close();
    txt.focus();
    tb = txt.document.execCommand("SaveAs",true,"Say Thanks to Sumit.xls");
    return (tb);
    }