互联网上的所有文章均声明需要服务器端调用才能将jqgrid导出为excel。我正在寻找一种机制,我可以将曾经加载的网格导出到excel而无需拨打电话。我怎样才能做到这一点?
答案 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);
}