Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2013, 14:43
calbo
 
Fecha de Ingreso: agosto-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
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.