Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/03/2009, 15:58
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Generar reportes en excel desde php + postgres

Hola bueno para generar el documento excel te recomiendo que utilices la libreria SpreadSheet Excel Writer desde aca -------- > http://pear.php.net/package/Spreadsh...riter/download y aca te dejo un ejemplo de como usarla (esta con Postgre):

Código PHP:

<?php
require_once 'Spreadsheet/Excel/Writer.php';
include_once(
"./include_php/conexion.php");
$conn conexion();

$SELECT_SECTOR_NINO "SELECT fu_obtener_edad(fecha_nac_nino,CURRENT_DATE) as edad, nino.id_nino, nino.nombre_nino, nino.apellido_paterno_nino, apellido_materno_nino, nino.direccion_nino, nino.sector_nino, nino.fono_fijo, nino.fono_movil, nino.fono_referencia, educacion.nombre_escuela_nino, educacion.curso_nino, educacion.repeticion_u_ano_nino, educacion.motivo_repitencia_nino, salud.estado_salud_nino, salud.discapacidad_nino, salud.tipo_discapacidad_nino
 FROM nino left join educacion on nino.id_nino = educacion.id_nino left join salud on nino.id_nino = salud.id_nino
     where nino.sector_nino = 'ANITA'"
;
 
 
$RES_SECTOR=pg_query($conn$SELECT_SECTOR_NINO);


//visualizar como archivo

$NombreArchivo ="Listado De Ninos Por Sectores.xls";

//creo el libro para el archivo

$libro = new Spreadsheet_Excel_Writer();

// Estableceremos nuestro formato Negrita e Italica para usarlo en el documento
            
$negrita =& $libro->addFormat();
            
$negrita->setBold();
            
$negrita->setPattern(1);
$negrita->setFgColor(0);
            
            
                
            
$italica =& $libro->addFormat();
            
$italica->setItalic();
            
$italica->setColor('black');
            
$italica->setPattern(1);
            
$italica->setFgColor(0);
            
            
            
            
$formato =& $libro->addFormat();
            
$formato->setItalic();
            
$formato->setColor('black');
$formato->setPattern(1);
$formato->setFgColor(26);//amarillo claro

//$formato->SetMargins(0.75);
        
            // Creamos una hoja en la cual poner nuestros datos
            
$hoja =& $libro->addWorksheet();
            
//$hoja =& $libro->SetMargins(1);
                    
            // Ancho de columnas
            
$hoja->setColumn(0,0,10);
            
$hoja->setColumn(1,1,30);
            
$hoja->setColumn(1,2,30);
            
$hoja->setColumn(1,3,10);
            
$hoja->setColumn(1,4,30);
            
$hoja->setColumn(1,5,30);
            
$hoja->setColumn(1,6,30);
            
$hoja->setColumn(1,7,30);
            
$hoja->setColumn(1,8,30);
            
$hoja->setColumn(1,9,30);
            
$hoja->setColumn(1,10,30);
            
$hoja->setColumn(1,11,10);
            
$hoja->setColumn(1,12,30);
            
$hoja->setColumn(1,13,30);
            
$hoja->setColumn(1,14,10);
            
$hoja->setColumn(1,15,30);
            
            
            
// Verificamos que la hoja se haya generado correctamente
            
if (PEAR::isError($hoja)) 
                die(
$hoja->getMessage());
                
            
// Titulos
            
$hoja->writeString(02"LISTADO DE NINOS POR SECTOR"$negrita$formato);
                
              
// Encabezado de columnas
            
$hoja->write(20"C.I.P"$italica);
            
$hoja->write(21"NOMBRE"$italica);
            
$hoja->write(22"APELLIDOS"$italica);
            
$hoja->write(23"EDAD"$italica);
            
$hoja->write(24"DIRECCION"$italica);
            
$hoja->write(25"SECTOR"$italica);
            
$hoja->write(26"F. FIJO"$italica);
            
$hoja->write(27"F. MOVIL"$italica);
            
$hoja->write(28"F. REFERENCIA"$italica);
            
$hoja->write(29"ESCUELA/LICEO"$italica);
            
$hoja->write(210"CURSO"$italica);
            
$hoja->write(211"REPITENTE"$italica);
            
$hoja->write(212"MOTIVO REPITENCIA"$italica);
            
$hoja->write(213"ESTADO DE SALUD"$italica);
            
$hoja->write(214"DISCAPACITADO"$italica);
            
$hoja->write(215"TIPO DISCAPACIDAD"$italica);
            
            
            
$i 3;
            while (
$fila pg_fetch_assoc($RES_SECTOR)) {
                    
//$ts=$fila["ts"];
                    
$id_nin $fila['id_nino'];
                    
$nomb $fila['nombre_nino'];
                    
$ape_paterno_nino $fila['apellido_paterno_nino'];
                    
$ape_materno_nino $fila['apellido_materno_nino'];
                    
$edad_nino $fila['edad']. " ANOS";
                    
$direccion $fila['direccion_nino'];
                    
$sector $fila['sector_nino'];
                    
$f_fijo $fila['fono_fijo'];
                    
$f_movil $fila['fono_movil'];
                    
$f_referencia $fila['fono_referncia'];
                    
$escuela_liceo $fila['nombre_escuela_nino'];
                    
$curso $fila['curso_nino'];
                    
$repeticion $fila['repeticion_u_ano_nino'];
                    
$motiv_repitencia $fila['motivo_repitencia'];
                    
$estado_salu $fila['estado_salud'];
                    
$discapacidad $fila['discapacidad_nino'];
                    
$tip_discapacidad $fila['tipo_discapacidad_nino'];
                        
                
                
$hoja->write($i0$id_nin$formato);
                
$hoja->write($i1$nomb$formato);
                
$hoja->write($i2$ape_paterno_nino." ".$ape_materno_nino$formato);
                
$hoja->write($i3$edad_nino$formato);
                
$hoja->write($i4$direccion$formato);
                
$hoja->write($i5$sector$formato);
                
$hoja->write($i6$f_fijo$formato);
                
$hoja->write($i7$f_movil$formato);
                
$hoja->write($i8$f_referencia$formato);
                
$hoja->write($i9$escuela_liceo$formato);
                
$hoja->write($i10$curso$formato);
                
$hoja->write($i11$repeticion$formato);
                
$hoja->write($i12$motiv_repitencia$formato);
                
$hoja->write($i13$estado_salu$formato);
                
$hoja->write($i14$discapacidad$formato);
                
$hoja->write($i15$tip_discapacidad$formato);
                
                 
                                 
                
$i++;
            }
            
$libro->send($NombreArchivo);
            
$libro->close();
?>
tienes q tener instalado el PEAR antes de instalar el SpreadSheed..... espero te sirva bye....