InicioCiencia EducacionExportar a Excel desde PHP
EXPORTAR A EXCEL (XLS) DESDE PHP!

142fc496eac1104b24ae30fdcb1cffa1.11711001451
dijo:

Este código ha sido escrito por mí y no existe (no encontré en un año de búsqueda por lo menos) otro igual.


dijo:

A poco tiempo de publicarlo, y ya hay un DoBoLu que se hacen "dueño" de cosas como estas:
http://www.t i p e t e.com/userpost/descargas-gratis/exportar-excel-desde-php-descarga-gratis


Ya hace un tiempo he estado tratando de exportar tablas de MySQL a Excel utilizando PHP en un sistema que he desarrollado.
Luego de tanto trabajo, he encontrado la forma de generar dicho archivo! Y funciona de 10

Aquí la clase que hace dicho trabajo:
dijo:

<?
class Export2ExcelClass{
    var 
$FileName   "export"#Nombre del archivo
    
var $xls        "";       #Contenido del archivo
    
var $row        1;        #Fila
    
var $col        1;        #Columna

    
public function Export2ExcelClass($file_name "export"){
        
//Inicio de clase
        
$this->FileName $file_name;
    }

    private function 
Head($file_name ""){
        
//Escribe cabeceras
        
$this->FileName = ($file_name == "") ? $this->FileName $file_name;
        
$f $this->FileName;
        
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        
header("Last-Modified: " gmdate("D,d M YH:i:s") . " GMT");
        
header("Cache-Control: no-cache, must-revalidate");
        
header("Pragma: no-cache");
        
header("Content-type: application/x-msexcel");
        
header("Content-Disposition: attachment; filename=$f.xls" );
        
header("Content-Description: PHP/INTERBASE Generated Data" );
        
header("Expires: 0");
    }

    private function 
BOF(){
        
//Inicio de archivo
        
return pack("ssssss"0x8090x80x00x100x00x0);
    }

    private function 
EOF(){
        
//Fin de archivo
        
return pack("ss"0x0A0x00);
    }

    public function 
Number($Row$Col$Value){
        
//Escribe un número (double) en la $Row/$Col
        
$this->xls .= pack("sssss"0x20314$Row$Col0x0);
        
$this->xls .= pack("d"$Value);
    }

    public function 
Text($Row$Col$Value){
        
//Escribe texto en $Row/$Col (UTF8)
        
$Value2UTF8 utf8_decode($Value);
        
$L strlen($Value2UTF8);
        
$this->xls .= pack("ssssss"0x204$L$Row$Col0x0$L);
        
$this->xls .= $Value2UTF8;
    }

    public function 
Write($Row$Col$Value){
        
//Escribir texto o numeros en $Row/$Col
        
if (is_numeric($Value)) $this->Number($Row$Col$Value);
        else 
$this->Text($Row$Col$Value);
    }

    public function 
WriteMatriz($Matriz){
        
//Convierte una matriz en una planilla
        //NOTA: Elimina el contenido que haya hasta ahora almacenado!
        /*
         * Ejemplo:
         * $Matriz = array(
         *      array('Nombre', 'Apellido', 'Edad'),
         *      array('Luciana', 'Camila', 1),
         *      array('Eduardo, 'Cuomo', 24),
         *      array('Vanesa', 'Chavez', 21)
         * );
         *
         * Devuelve un EXCEL como:
         * _| A     | B      | C  |
         * 1|Nombre |Apellido|Edad|
         * 2|Luciana|Camila  |1   |
         * 3|Eduardo|Cuomo   |24  |
         * 4|Vanesa |Chavez  |21  |
         *
        */
        
$this->xls "";
        
$nRow 0;
        
$nCol 0;
        foreach(
$Matriz as $Row){
            foreach(
$Row as $Value){
                
$this->Write($nRow$nCol$Value);
                
$nCol++;
            }
            
$nCol 0;
            
$nRow++;
        }
    }

    public function 
Download($file_name ""){
        
//Escribe el archivo y agrega las cabeceras para generar la descarga
        
$this->Head($file_name);
        echo 
$this->BOF();
        echo 
$this->xls;
        echo 
$this->EOF();
    }

    public function 
Archivo($loc_file){
        
//Crea archivo, borrando el que existe si ya existia
        //$loc_file : Ruta del archivo. Ej: "./downloads/archivo.xls"
        
$f fopen($loc_file'w');
        
fwrite($f$this->BOF());
        
fwrite($f$this->xls);
        
fwrite($f$this->EOF());
        
fclose($f);
    }

}
?>



No creo que tengan problemas para utilizarla, ya que he comentado bastante el código
Pero si no entienden bien sobre el tema, acá les dejo un ejemplo:

dijo:

<?
//Antes de esto, debe estar la clase anterior!
//Generamos el objeto
$excel = new Export2ExcelClass;
//Matriz a convertir:
$Matriz = array(
    array(
'Nombre''Apellido''Edad'),
    array(
'Luciana''Camila'1),
    array(
'Eduardo, 'Cuomo', 24),
    array('
Vanesa', 'Chavez', 21)
);
//Convertimos la matriz a Excel:
$excel->WriteMatriz($Matriz);
//Hacemos que sea descargable:
$excel->Download("ArchivoExcel");
?>



Con esto, obtenemos un archivo de Excel parecido al siguiente:
dijo:


_| A     | B      | C  |
1|Nombre |Apellido|Edad|
2|Luciana|Camila  |1   |
3|Eduardo|Cuomo   |24  |
4|Vanesa |Chavez  |21  |



Bueno, todo esto no hubiera sido posible si no encontraba este sitio, donde comenzó la idea: . MUCHAS GRACIAS!

Espero les sea de utilidad!

Saludos!
Datos archivados del Taringa! original
0puntos
766visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
0visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

r
reduardo7🇦🇷
Usuario
Puntos0
Posts9
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.