mas notas
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.
Necesitab hacer un archivo msg.
A versi puedo aprovechar este código.
muy bueno, muchas gracias!
matate hijo de tu mama
Esta bien el ejemplo lo que falataria es saber en donde va o como lo llamo para utlizar tantas funciones.
Gracias por compartilo
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
perverso, solo en esto tengo una duda:
header ("Content-Disposition: attachment; filename=prueba.xls" );
le dedo cambiar el filename? para que sirve?
Genial tu codigo !! muchas gracias !