php + jqgrid +导出到excel

有人知道将数据从jqgrid导出到excel的方法吗?

我想用这个jqgrid做一个报告,我觉得很棒。 但我需要以某种方式保存或打印此报告,因为需要保留信息。 有人知道吗?

这是我的方法,只需将此代码添加到您的js / html文件中

$("#list").jqGrid('navGrid', '#pager',{view:true, del:false, add:false, edit:false, excel:true}) .navButtonAdd('#pager',{ caption:"Export to Excel", buttonicon:"ui-icon-save", onClickButton: function(){ exportExcel(); }, position:"last" }); function exportExcel() { var mya=new Array(); mya=$("#list").getDataIDs(); // Get All IDs var data=$("#list").getRowData(mya[0]); // Get First row to get the labels var colNames=new Array(); var ii=0; for (var i in data){colNames[ii++]=i;} // capture col names var html=""; for(i=0;i 

PHP脚本

 header('Content-type: application/vnd.ms-excel'); header("Content-Disposition: attachment; filename=file.xls"); header("Pragma: no-cache"); $buffer = $_POST['csvBuffer']; try{ echo $buffer; }catch(Exception $e){ } 

非常好的问题,我也对此感到头疼。 我通过选择Felix的建议来做到这一点,让我通过在你的html主体中添加以下行来完成它。

 

我唯一的问题是导出的excel文件不包括我在jqgrid中的列名,还有一种方法可以在导出到excel文件时排除特定或多个列吗?

谢谢〜

function很棒!
我做了改变。

 function exportExcel($ id){
   var keys = [],ii = 0,rows =“”;
   var ids = $ id.getDataIDs();  //获取所有ID
   var row = $ id.getRowData(ids [0]);  //获取第一行以获取标签
   for(var k in row){
    键[II ++] = K;  //捕获列名称
    行数=列+ K + “\ t” 的;  //输出每个列作为制表符分隔
   }
  行数=列+ “\ n” 个;  //带有行尾的输出标题
   for(i = 0; i ”;
   form = form +“”;
   form = form +“ 

我解决了你的问题。现在我可以用列名导出数据excel,请参考我的代码。

 function exportExcel() { var mya=new Array(); mya=$("#tblnoupdate").getDataIDs(); // Get All IDs var data=$("#tblnoupdate").getRowData(mya[0]); // Get First row to get the labels var colNames=new Array(); var ii=0; for (var i in data){colNames[ii++]=i;} // capture col names var html=""; for(k=0;k 

如果您遇到任何问题,请告诉我。

这是一个聪明的解决方案,将jqGrid数据保存为excel表而不调用php脚本:(您只需要使用GridID和可选的Filename调用此函数)

 var createExcelFromGrid = function(gridID,filename) { var grid = $('#' + gridID); var rowIDList = grid.getDataIDs(); var row = grid.getRowData(rowIDList[0]); var colNames = []; var i = 0; for(var cName in row) { colNames[i++] = cName; // Capture Column Names } var html = ""; for(var j=0;j 

我们首先创建一个用以下分隔的CSV字符串; 。 然后使用某些属性创建anchor标记。 最后在a上调用click来下载文件。

您可以查看几个excel MIME类型: MIME类型列表

创建一个名为“csvBuffer”的表单和一个隐藏元素。 该元素由函数设置。 我不得不换线

 html = html+"\n" 

 html = html+"\\n" 

为了妥善逃脱它。