¿Cómo crear documentos de Microsoft Office con PHP?
Publicado por lcflores en 9th Julio 2007
Justin Silverton describe dos formas principales de construir un documento de Excel, Word y PowerPoint usando PHP. La primera es usar la librería COM (sólo es válido si estas usando un servidor Windows), la segunda forma es utilizar una solución más estándar basada en HTML o CSV.
Si bien es totalmente correcto, me gustaría puntualizar algunas cosas. Las librería con son muy potentes, nos permiten crear cualquier documento Microsoft Office sin problemas, pero no están pensadas para ser utilizadas en un servidor (¿Instalar Word, Excel en un servidor?) y mucho menos optimizadas para funcionar en entornos con usuarios concurrentes.
Cuando creas un objeto de la clase COM(“word.application”) automáticamente estás cargando en memoria, además de las funciones para crear documentos Word, toda la configuración del usuario, barras de herramientas, utilidades, etc . El resultado puede ser nefasto para el servidor y su memoria. Debéis sumar los numerosos problemas de seguridad que pueden ocasionar unas librerías pensadas para monousuarios y las posibilidades de “cuelgue”, como resultado tendréis un cóctel demoledor.
Las soluciones vía HTML o CSV, aunque obviamente no tan potente como usar las librerías COM, son soluciones pensadas para trabajar en un servidor, consumir pocos recursos con múltiples usuarios e incluyen seguridad. Y salvo que no haya otra solución, sólo deberíamos usar este método para construir documentos de Microsoft Office con PHP.
Mi recomendación es que no perdáis el tiempo creando estas librerías y busquéis soluciones probadas y que os ahorraran tiempo en vuestros desarrollos. Hay soluciones tanto comerciales como OpenSource, un buen ejemplo es PHP Simple Excel File Generador.

20th Julio 2007 a las 13:12
Hola. Me gustaría probar el excel generator que pones en el artículo, pero estoy un poco perdido. Una vez que me lo descargo, ¿qué tengo que hacer?.
Gracias
22nd Julio 2007 a las 13:14
Hola Ángel!
Mi recomendación es que utilices el paquete de PEAR Spreadsheet Excel Writer
Personalmente no lo he utilizado pero al ser un paquete de PEAR tendrás más seguridad de que es estable y está actualizado.
Para utilizar este paquete, te recomiendo el siguiente artículo de Sitepoint.
Un saludo!
22nd Julio 2007 a las 13:25
Para utilizar PHP Simple Excel File Generador sólo hay que seguir los siguientes pasos:
- bajarte la última versión
- descomprimir el fichero
- ejecutar alguno de los ejemplos desde la línea de comandos
Si quieres incluirlo en alguna aplicación web, tendrás que copiarte la librería psxlsgen.php en tu aplicación, incluirla (include o require) desde el script en el que se utilizará y escribir el código que necesites.
Te recomiendo que veas los ejemplos de código que vienen en el fichero que te descargas. Otra opción es ver uno de esos ejemplos desde la página de Zend
Un saludo!
22nd Julio 2007 a las 22:33
Ok, muchas gracias, voy a echarle un ojo y ya os cuento.
8th Agosto 2007 a las 17:49
Bueno, he estado intentando generar el fichero .xls con PHP Simple Excel File Generador, y lo crea, pero no sé si lo hace bien, ya que al intentar abrirlo me dice “Imposible leer el archivo”. A ver si alguien puede aportarme un poco de luz.
8th Agosto 2007 a las 18:01
Por cierto, el documento que se genera si tiene los datos correctos, ya que abriendolo con el notepad, se puede ver. El problema debe ser de formato, pero estoy sin ideas…
10th Agosto 2007 a las 21:05
Hola Angel!
Perdona el retraso en contestar (se nota que estamos de vacaciones).
Con la nuevas versiones de Excel está dando problemas la úttima versión de la librería (la 0.3b). Si utilizas la versión anterior 0.2 de la librería te debería funcionar.
Esperamos que por fin todo te funcione!
Un saludo!
Armando
11th Agosto 2007 a las 13:18
Pues si, con la versión 0.2 funciona perfectamente. Muchas gracias por todo!!!!
Un saludo!