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.


19 comentarios


03/09/2010 - 02:57 - Bruno Macias
lo siento no puedo pegar...

Si en algun momento quieren saber lo que hice me pueden escribir a bomv.27@gmail.com


03/09/2010 - 02:55 - Bruno Macias
Hmm, la falla no puedo postear todo el codigo asi que pondre mis cambios.

1.- la funcion que reconoce que es texto o numero.

function xlsWriteCell($Row, $Col, $Value )
{
if(is_numeric($Value))
xlsWriteNumber($Row, $Co


03/09/2010 - 02:53 - Bruno Macias
hola a todos le hice unas cuantas mejoras al código del pana. Ahora decide solo si es un numero o texto. Ademas de reconocer tildes, ñ y demas caracteres especiales.

<?php
$nameFile = "ejemplo_excel.xls";

//header ("Expires: 0");


28/08/2010 - 12:59 - Pablo
Hola, de casualidad se puede manejar pestañas o solapas o tabs del archivo exportado y en cada una de estas una información específica

09/08/2010 - 09:43 - Fab
hey esto es excelente!!!!!
Una sola pregunta alguien sabe como puedo cambiar el tamano y poner negrilla en la fuente???
gracias

23/06/2010 - 06:41 - Javier Murcia
Muchas gracias, es lo que necesitaba. muy facil, sencillo, la verdad no pense que fuera tan facil. de nuevo gracias.

17/11/2009 - 08:27 - Noe
Excelente, funciona a la perfección. Muchas gracias

17/11/2009 - 08:27 - Noe
Excelente, funciona a la perfección. Muchas gracias

31/08/2009 - 01:01 - Jonathan Palomares
Solo tengo un comentario o más bien una duda con este código eh intentado expotar cadenas largas desde un base de datos y no las muestra

14/04/2009 - 09:48 - FESSJ-V
LE ENSALYARE HABER QUE SUCEDE....AUNQUE PREFERIBLE TRADUCIRLO....SI SE PUEDE

02/04/2009 - 11:49 - Jleu
no habra uno por hay en español mijo!!!???

02/04/2009 - 11:48 - Jleu
no habra uno por hay en español mijo!!!???

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: