Crear archivos Excel desde PHP

Bueno, hace ya varios posts, publique algo acerca de como crear archivos PDF’s desde codigo PHP, algo que sin dudo me imagino que a muchos le ha sido de gran utilidad. Ahora les traigo algunas clases para crear archivos excel a partir de codigo PHP, aunque algunos dirán que se puede hacer con solo agregar el encabezado correcto, pero es muy limitado los recursos que se puede hacer con esta forma.

Para los que no saben como hacer los excel con solo agregar un encabezado aqui les dejo este:

// Funciona solo en Linux
if(strpos($_SERVER['HTTP_USER_AGENT'],"Linux") !== FALSE)
{
header('Content-type: application/vnd.ms-excel');
header("Pragma: no-cache");
header("Expires: 0");
header("Content-disposition: attachment; filename=nombre_archivo.xlsx");
}
// Funciona solo en Windows
else if (strpos($_SERVER['HTTP_USER_AGENT'],"Windows") !== FALSE)
{
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=nombre_archivo.xls");
header("Content-Transfer-Encoding: binary ");
}

Con este encabezado ustedes pueden forzar al navegador a que descargue el codigo html que se genero y lo devuelva como un archivo de excel. Bueno esto no tiene gran ciencia.

Ahora lo interesante es que existen algunas clases o librerias que proporcionan muchas funcionalidades de las cuales no se puede obtener con solo colocar el encabezado, como por ejemplo colocar una imagen al archivo excel. Bueno les listo las clases que he utilizado de la mejor, segun un punto personal, a la que menos me a gustado:

  • PHPExcel: es una pequeña librería muy robusta que nos provee de las clases php necesarias tanto para crear como para leer ficheros Excel desde sin demasiadas complicaciones, sin duda, en lo personal, la mejor. Tiene muy buena documentacion y ejemplos que ilustran el funcionamiento de esta excelente libreria.
  • MS-Excel Stream Handler: Para ser sinceros esta no la he testeado.
  • PHP Excel Reader: Muy util.
  • reportes-php-excel: Derivada de php_writeexcel.
  • php_writeexcel: La mas sencilla de todas

Bueno ahi les dejo el abanico de posibilidades para que elijan cual les conviene mas según sus necesidades, no coloque ejemplos de como utilizarlas porque en las paginas oficiales esta todo un arsenal de ejemplos y codigos, ademas de manual de referencia, los cuales pueden consultar y explicar mejor el funcionamiento de la libreria.

About these ads

5 pensamientos en “Crear archivos Excel desde PHP

  1. Hola muy bueno el post, yo estoy trabajando con esta libreria pero al generar el archivo de excel desde mi servidor Linux al browser el archivo se daña y me salen caracteres como esto: ÐÏࡱá;þÿ
    ÌÑB°=¼%r8X”1ÈArial1È
    Tahoma1ÈTahoma1ܼTahoma1ð
    Tahoma1 Tahoma1Œ
    Tahoma1xTahoma1x
    Tahoma1´¼Arial1Œ¼Tahoma1ȼTahoma1ŒTahoma1¼Tahoma1Tahoma1€Tahoma1dTahoma1jTahoma1 ¼Tahoma1,Monotype Sorts1ð¼Tahoma1ܼTahoma1ðTahoma1ȼTahoma1x¼Tahoma1xTahoma1´Tahoma1´¼Tahoma1nTahoma16ŒLucida Sans Unicode1ŒTahoma1 
    Tahoma1x¼Tahoma1ÜTahoma16xLucida Sans Unicode16ŒLucida Sans Unicode1n
    Tahoma¤GENERALe¥0_(* #,##0.00_);_(* \(#,##0.00\);_(* \-??_);_(@_)Y¦*_(* #,##0_);_(* \(#,##0\);_(* \-??_);_(@_)U§(_(* #,##0_);_(* \(#,##0\);_(* \-_);_(@_)a¨._(* #,##0.0_);_(* \(#,##0.0\);_(* \-??_);_(@_)©
    DD/MM/YYYYà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ Ĉà¤õÿ ĈठĈठ̈ठ̈ठ̈औ̈ठ̈औ̈औ̈ठ̈औ̈ठ̈औ̈ठ̈ठ̈ठ̈à
    Y al guardar me guarda en mi PC como extension csv, mas en el servidor lo guarda perfecto xls, he probado de todo y no doy con el problema

  2. I was curious if you ever thought of changing the page layout of
    your website? Its very well written; I love what youve got
    to say. But maybe you could a little more in the way of content so people
    could connect with it better. Youve got an awful lot of text for
    only having 1 or two images. Maybe you could space it out
    better?

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s