Exportar un .xls desde php

13/10/2005 - 11:19
El otro dia me surgio un problema, necesitaba exportar unos datos a excel desde php y como que casi me vuelvo loco, pero por suerte salio todo bien porque di con este codigo:
Los comentarios estan en ingles, pero son entendibles
Espero que les sirva, saludos!

// Excel begin of file header
function xlsBOF()
{
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
// Excel end of file footer
function xlsEOF()
{
echo pack("ss", 0x0A, 0x00);
return;
}
// Function to write a Number (double) into Row, Col
function xlsWriteNumber($Row, $Col, $Value)
{
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
// Function to write a label (text) into Row, Col
function xlsWriteLabel($Row, $Col, $Value )
{
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
// ----- end of function library -----
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=prueba.xls" );
header ("Content-Description: PHP/INTERBASE Generated Data" );
xlsBOF(); // begin Excel stream
xlsWriteLabel(0,0,"This is a label"); // write a label in A1, use for dates too
xlsWriteNumber(0,1,9999); // write a number B1
xlsEOF(); // close the stream

Que les sea leve.


7 comentarios


01/10/2008 - 02:09 - Gaby
Genial tu codigo !! muchas gracias !

22/01/2008 - 07:12 - RayPerro
Necesitab hacer un archivo msg.
A versi puedo aprovechar este código.

19/12/2007 - 06:08 - victor
muy bueno, muchas gracias!

14/11/2007 - 03:26 - Fabian Aguilera (Talca Ch
matate hijo de tu mama

16/08/2007 - 08:19 - Elvis Regalado
Esta bien el ejemplo lo que falataria es saber en donde va o como lo llamo para utlizar tantas funciones.

Gracias por compartilo


09/05/2007 - 02:59 - Robinho otra vez
Pues hice unas pruebas y la diferencia es que sin el header expuesto antes lo puedes abrir en la misma ventana de Internet Explorer y con el header lo manda a abrir en una ventana nueva de excel :P

09/05/2007 - 02:13 - Robinho
perverso, solo en esto tengo una duda:
header ("Content-Disposition: attachment; filename=prueba.xls" );
le dedo cambiar el filename? para que sirve?

Comentarios

Autor:

Comentario:


Security Text: