|  Php + jqgrid + excel  
  HOLA AMIGOS, NECESITO DE SU AYUDA..... TENGO UNA PAGINA EN "PHP" DONDE MUESTRO MIS DATOS QUE TENGO EN LA BASE DE DATOS "POSTGRESQL" MEDIANTE UN JQUERY LLAMADO "JQGRID", EL PROBLEMA ES QUE TENGO QUE PASAR ESTOS DATOS DE LA GRILLA A UN ARCHIVO EXCEL.
 EN ESTOS MOMENTOS FUNCIONA, PERO EL PROBLEMA ESTA EN EL EXCEL QUE MUESTRA LOS DATOS TODOS JUNTOS (SIN SEPARACIÓN DE FILAS). A CONTINUACIÓN MUESTRO EL CÓDIGO PARA VER SI ALGUIEN PUEDE AYUDARME:
 
 "ACA CREO MI GRILLA"
 
 var creaGrillaActivos = function(){
 jQuery("#grillaListado").jqGrid({
 url:'validaciones.php?accion=20&q='+$("#id_proyect  o").val(),
 datatype: "xml",
 colNames:[
 'Descripcion',
 'Nombre Etapa',
 'Tarea Afectada',
 'Dias Impacto',
 'Dias Atraso',
 'Fecha',
 'Solucion',
 'Fecha Solucion',
 'Visibilidad',
 'Estado',
 'Opciones'],
 colModel:[
 {name:'descripcion',index:'descripcion', align:'left', width:130, sortable:true, resizable:false, title:false},
 {name:'nombre_etapa',index:'nombre_etapa', align:'left', width:440, sortable:true, resizable:false, title:false},
 {name:'tarea_afectada',index:'tarea_afectada', align:'center', width:120, sortable:true, resizable:false, title:false},
 {name:'dias_impacto',index:'dias_impacto', align:'center', width:110, sortable:true, resizable:false, title:false},
 {name:'dias_atraso',index:'dias_atraso', align:'center', width:140, sortable:true, resizable:false, title:false},
 {name:'fecha_identificacion',index:'fecha_identifi  cacion', align:'center', width:160, sortable:true, resizable:false, title:false},
 {name:'solucion',index:'solucion', align:'center', width:160, sortable:true, resizable:false, title:false},
 {name:'fecha_solucion',index:'fecha_solucion', align:'center', width:160, sortable:true, resizable:false, title:false},
 {name:'ind_visibilidad',index:'ind_visibilidad', align:'center', width:160, sortable:true, resizable:false, title:false},
 {name:'estado',index:'estado', align:'center', width:160, sortable:true, resizable:false, title:false},
 {name:'opciones',index:'opciones', align:'center', width:90, resizable:false}],
 shrinkToFit: true,
 rowNum:17,
 loadtext:'Cargando datos...',
 height: "394",
 hidegrid: false,
 //rowList:[10,20,30],
 ignoreCase:true,
 sortname: 'descripcion',
 viewrecords: false,
 pgbuttons:true,
 pgtext: null,
 recordtext:	null,
 title:false,
 loadonce: true,
 sortorder: "asc",
 caption:"Listado de Incidencias",
 pager: 'pagerListado',
 
 //editurl:"validaciones.php?accion=16",
 gridComplete: function(){
 var ids = jQuery("#grillaListado").jqGrid('getDataIDs');
 for (var i=0;i < ids.length;i++){
 var cl = ids[i];
 de = "<span class='ui-icon ui-icon-trash' id='eli' title='Eliminar Incidencia' style='display:inline-block' onclick=\"modalEliminaIncidencia("+cl+");\"></span>";
 se = "<span class='ui-icon ui-icon-gear' title='Modificar Incidencia' style='display:inline-block' onclick=\"location.href='ingIncidencia.php?id_inci  dente="+cl+"'\"></span>";
 jQuery("#grillaListado").jqGrid('setRowData',ids[i],{opciones:se+de});
 }
 }
 }).navGrid("#pagerListado",{edit:false,add:false,d  el:false,excel:true, search:false, refresh:false}
 ).navButtonAdd('#pagerListado',{
 //caption:"Ingresar Incidencia",
 //buttonicon:"ui-icon-document",
 //onClickButton: function(){
 //location.href='ingIncidencia.php?id_proyecto='+$("  #id_proyecto").val();
 caption:"Export to Excel",
 buttonicon:"ui-icon-save",
 onClickButton: function(){
 exportExcel();
 },
 position:"last"
 
 //}
 }
 
 );
 }
 
 "LA FUNCIÓN QUE VA A LA PAGINA QUE CONTIENE EL ENCABEZADO DEL EXCEL"
 
 function exportExcel()
 {
 var mya=new Array();
 mya=$("#grillaListado").getDataIDs();  // Get All IDs
 var data=$("#grillaListado").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<colNames.length;k++)
 {
 html=html+colNames[k]+"\t";     // output each Column as tab delimited
 }
 html=html+"\n";                    // Output header with end of line
 for(i=0;i<mya.length;i++)
 {
 data=$("#grillaListado").getRowData(mya[i]); // get each row
 for(j=0;j<colNames.length;j++)
 {
 html=html+data[colNames[j]] + "\t"; // output each Row as tab delimited
 }
 html=html+"\n";  // output each row with end of line
 
 }
 html=html+"\n";  // end of line at the end
 document.form1.csvBuffer.value=html;
 document.form1.method='POST';
 document.form1.action='<?php echo $baseurl;?>csvExport.php';    // send it to server which will open this contents in excel file
 document.form1.target='_blank';
 document.form1.submit();
 }
 
 "Y FINALMENTE LA PAGINA QUE PERMITE ABRIR EL EXCEL"
 <?
 require "comun.inc.php"; //codigo comun a todas las paginas.
 
 
 if ($privilegio=='usuario') { // si es usuario no puede ver esta pagina
 Util::pagina_mensaje("Usted no tiene acceso a esta pagina", "login.php");
 exit;
 }
 
 ?>
 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <title>Proyectos</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
 <script src="js/jquery-latest.js"></script>
 <script src="js/jquery-ui-1.9.2.custom.min.js"></script>
 <script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
 <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
 
 
 </head>
 <body text="#000000" link="#000000" vlink="#000000" alink="#000000" class="bodyCCIgris">
 
 
 <?
 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){
 
 }
 ?>
 </body>
 </html>
 
 POR FAVOR SI ALGUIEN PUEDE AYUDARME CON ESTO, SE LOS AGRADECERÍA MUCHO.
     |