Cómo exportar datos a Excel con Laravel

En nuestros proyectos muchas veces vamos a necesitar exportar nuestros datos, ya sea porque el cliente lo requiera o simplemente porque necesitamos poder extraer esos datos del sistema, en este tutorial explicare como exportar tus datos de manera fácil a Excel.

Utilizaré la última versión de Laravel hasta esta fecha la 5.4. Teniendo Laravel 5.4 instalado vamos a instalar el paquete

https://github.com/Maatwebsite/Laravel-Excel

Instalación y Configuración:

Para instalarlo solo tenemos que ejecutar: composer require maatwebsite/excel en nuestro proyecto.

Una vez instalado lo debemos añadir el Service provider en el archivo config/app.php

También el facade a los alias:

Ahora  necesitaremos unos datos los cuales exportar, usaremos los de la tabla users por defecto de Laravel para eso primero configuramos una conexión a nuestra base de datos en el archivo .env  y después ejecutamos php artisan migrate.

NOTA: Ayudándome de un seed y el componente Faker generé 30 usuarios para exportar sus datos.

Uso:

Para empezar crearemos un Controlador ejecutando:

php artisan make:controller ExcelController.

y crearemos una ruta a la cual accederemos para extraer los datos

Para exportar todos nuestros usuarios definiremos el metodo exportUsers dentro del controlador creado y dentro del método pondremos:

Con el metodo create() creamos un nuevo documento de excel, este método requiere 2 parametros, el primero es el nombre del archivo, y el segundo en este caso es un callback para poder manipular lo que contendrá nuestro archivo.

Primero obtenemos todos los usuarios con Eloquent y después utilizando el método sheet() creamos una nueva hoja dentro del documento de Excel, este método recibe como primer parametro el nombre de la hoja users y un callback donde le pasaremos los usuarios, utilizando el metodo fromArray() insertara los datos del array pasado como argumento y con el método export() le indicamos exporte el documento, el parámetro es el formato de la descarga en este caso xlsx.

Al acceder a la ruta /export-users obtendremos el archivo muestra todos los registros.

Modificando filas:

Ya sabemos exportar los registros de una manera rápida ahora vamos a personalizar un poco mas el documento, utilizando el método row() podremos modificar cada fila del documento y editar las casillas que necesitemos, en este caso cambiaremos los nombres de los títulos del la base de datos para traducirlos y que queden más legibles para el usuario.

el método row() acepta 2 parámetros, el primero es la fila que se va a editar y el segundo es un array que contiene cada casilla que se editara.

Ahora utilizaremos el mismo método para los introducir los registros quedando de esta manera:

con un foreach recorreremos los usuarios para insertarlos, utilizamos el indice para indicarle que empiece desde la fila número 2 para no sustituir la numero 1, al acceder a la ruta /export-users obtendremos un resultado mas amigable para el usuario.

El paquete incluye muchas mas funcionalidades todas esta información esta en su documentación oficial: http://www.maatwebsite.nl/laravel-excel/docs

Esto ha sido todo, espero que les sea de gran ayuda este paquete ya que a mi me ha servido mucho para extraer datos de los proyectos.

Comparte este artículo

Entra en la discusión y deja tu comentario