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 +“ 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;kcsvexport.php'; // send it to server which will open this contents in excel file document.forms[0].target='_blank'; document.forms[0].submit(); }
如果您遇到任何问题,请告诉我。
这是一个聪明的解决方案,将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"
为了妥善逃脱它。