XperimentoS

Experiencias Profesionales…

¿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.

Post relacionados

  • Microsoft Office 2003 problema con SKU011.CAB
  • Microsoft compra FAST
  • ¿Microsoft apuesta por PHP?, ver para creer
  • Próxima plataforma de Microsoft
  • Soluciones de Servidor
  • 8 Respuestas en “¿Cómo crear documentos de Microsoft Office con PHP?”

    1. Angel Dice:

      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

    2. aanton Dice:

      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!

    3. aanton Dice:

      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!

    4. Angel Dice:

      Ok, muchas gracias, voy a echarle un ojo y ya os cuento.

    5. Angel Dice:

      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.

    6. Angel Dice:

      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…

    7. aanton Dice:

      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

    8. Angel Dice:

      Pues si, con la versión 0.2 funciona perfectamente. Muchas gracias por todo!!!!

      Un saludo!

    Dejar un Comentario

    XHTML: Puedes usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

     
    Cerrar
    Enviar por Correo