jueves, 25 de febrero de 2016

Exportación de datos en PHP a documentos.

No hay comentarios:
 

Hoy vamos a explicar como exportar datos de una web con base de datos a distintos formatos de documentos.

Tenemos que distinguir dos tipos:
  • PDF
  • Word y Excel

¿Porqué distinguimos de dos tipos?

Porque para imprimir en PDF necesitaremos una una librería externa a PHP, sin embargo .doc y .xls lo vamos a convertir en las cabeceras (header()).

Empecemos por explicar el escenario de trabajo.
Tenemos una web que administra una base de datos que guarda preguntas y respuestas.


Queremos que el administrador tenga la opción de exportar la base de datos a documentos.

Empecemos viendo cómo vamos a exportar estos datos.

Primero vamos a centrarnos por lo más sencillo.
Para ambos casos de tipos de formatos vamos a necesitar una página la cual vamos a imprimir en un documento. La vamos a llamar impresion.php.


Crearemos un nuevo script que se va a encargar de gestionar la exportación.
En este nuevo script, lo primero que debemos hacer es comprobar el tipo de extensión


Como observareis, detectamos extensiones solamente en función de .doc y .xls, ya que el siguiente paso es detectar si es PDF por el tipo.

Ahora solamente nos centraremos en los .doc y .xls

Una vez que detectamos que no es PDF, escribimos las cabeceras correspondientes.


Siendo la cabecera que se va a encargar de exportar los datos:


El atributo filename, va a ser el archivo que nos va a generar, que decidimos ponerle de nompre "preguntas" y le añadimos la extensión detectada anteriormente.

Una vez hecho el require del documento de impresión creado antes, vamos a imprimir en .doc o en .xls.

Veamos el resultado: 



Ahora pasamos a trabajar con el formato PDF, para ello necesitaremos la libreria DOMPDF, el cual nos lo descargaremos de GitHub y lo incluiremos en nuestro script.

Ahora dentro de la detección del formato PDF, realizamos lo siguiente.


Como vemos, lo primero que hacemos es incluir la libreria.
Creamos la clase Dompdf para poder acceder a sus métodos.
Lo primero, es necesario cargar el HTML a imprimir, es importante añadir la ruta completa, que en mi caso es una constante que contiene:

"http://localhost/sabioGC/util/"

Una vez cargamos el HTML, renderizamos el resultado y una vez renderizamos, generamos el PDF con el título que queramos y su extensión .pdf

Así de simple.

Veamos el resultado:


Sin más, espero que os sea de ayuda.

Emanuel Galván Fontalba - Web Developer.





No hay comentarios:

Publicar un comentario

 
© 2012. Design by Main-Blogger - Blogger Template and Blogging Stuff