Foros del Web » Programando para Internet » PHP »

Crear archivo EXCEL sin usar PEAR

Estas en el tema de Crear archivo EXCEL sin usar PEAR en el foro de PHP en Foros del Web. Hola a todos. Necesito bajar informacion a un archivo EXCEL y todo lo que consigo son scripts que utilizan PEAR (lo que debo evitar) ó ...
  #1 (permalink)  
Antiguo 08/02/2012, 14:06
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Crear archivo EXCEL sin usar PEAR

Hola a todos. Necesito bajar informacion a un archivo EXCEL y todo lo que consigo son scripts que utilizan PEAR (lo que debo evitar) ó generadores que no almacenan la informacion en un archivo.

Si alguno tiene un script para CREAR un archivo binario de excel le agradeceria muchisimo, por ahora solo tengo esto que no me sirve de mucho:

Código PHP:
        # HELPERS
        
function xlsBOF() {
            echo 
pack("ssssss"0x8090x80x00x100x00x0);  
            return;
        }
        function 
xlsEOF() {
            echo 
pack("ss"0x0A0x00);
            return;
        }
        function 
xlsWriteNumber($Row$Col$Value) {
            echo 
pack("sssss"0x20314$Row$Col0x0);
            echo 
pack("d"$Value);
            return;
        }
        function 
xlsWriteLabel($Row$Col$Value ) {
            
$L strlen($Value);
            echo 
pack("ssssss"0x204$L$Row$Col0x0$L);
            echo 
$Value;
            return;
        } 





        
// Send Header
        
header("Pragma: public");
        
header("Expires: 0");
        
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        
header("Content-Type: application/force-download");
        
header("Content-Type: application/octet-stream");
        
header("Content-Type: application/download");
        
header("Content-Disposition: attachment;filename=export.xls ");
        
header("Content-Transfer-Encoding: binary ");


        
xlsBOF();

        
# CAMPOS
        
xlsWriteLabel(0,0"Nombre"); // Linea 1, Columna 1
        
xlsWriteLabel(0,1"Apellido"); // Linea 1, Columna 2

                # INFORMACION
        
xlsWriteLabel(1,0,"Jose"); // Linea 2, Columna 1
        
xlsWriteLabel(1,1,"Perez"); // Linea 2, Columna 2

        
xlsEOF(); 
El problema de este script es que no guarda en archivo. Intente en las funciones "HELPERS" cambiar el "echo" por fwrite (con su debido fopen para escritura en binario), pero no consegui que el archivo resultante tenga el formato adecuado.

Agradezco de antemano la ayuda!

Saludos
  #2 (permalink)  
Antiguo 08/02/2012, 14:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Crear archivo EXCEL sin usar PEAR

Pues con esas funciones, lo que tendrías que hacer es quitar los header(), y usar funciones de salida como ob_start() y ob_end_clean() para obtener la salida y posteriormente almacenarla en un archivo con fopen() y fwrite().

Saludos.
  #3 (permalink)  
Antiguo 08/02/2012, 14:35
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Crear archivo EXCEL sin usar PEAR

Gator, gracias por responder.

¿Y no voy a necesitar escribir el encabezado en binario en base al formato de excel al principio del archivo? por que me parece que a mi no me funciona por esa razon...

Nunca use el "OB"... no te quiero molestar pidiendote como usarlo, sabras de algun tutorial? voy revisando el manual de php.net igualmente...

gracias!
  #4 (permalink)  
Antiguo 08/02/2012, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Crear archivo EXCEL sin usar PEAR

Claro que lo necesitas pero es simple:
Código PHP:
Ver original
  1. <?php
  2.  
  3. xlsBOF();
  4. // etc.
  5. xlsEOF();
  6.  
  7. $xls = ob_get_clean();
  8. $fh = fopen('file.xls', 'wb');
  9. fwrite($fh, $xls);
  10. fclose($fh);

Saludos.
  #5 (permalink)  
Antiguo 08/02/2012, 20:38
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Crear archivo EXCEL sin usar PEAR

Funcionó de 10. Mil gracais GatorV. Está muy piola esa funcion, voy a ver para que mas la puedo utilizar.

Abrazo!

Eduardo

Etiquetas: excel, pear, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:24.