wordpress

Exportar datos de Laravel Yajra Datatables a Excel CSV con un botón

Laravel Yajra Datatables es una biblioteca muy útil para trabajar con tablas de datos en Laravel. Permite realizar búsquedas, filtrar, ordenar y paginar los datos de manera eficiente. Sin embargo, una funcionalidad que a menudo se necesita es la capacidad de exportar los datos de la tabla a un archivo Excel o CSV. En este artículo, aprenderemos cómo exportar datos de Laravel Yajra Datatables a un archivo Excel o CSV con un botón.

Requisitos previos

Antes de comenzar, asegúrate de tener los siguientes requisitos previos:

– Laravel instalado en tu máquina.
– Laravel Yajra Datatables instalado en tu proyecto Laravel.
– Conocimientos básicos de Laravel y PHP.

Instalación de Laravel Yajra Datatables

Para instalar Laravel Yajra Datatables en tu proyecto Laravel, sigue estos pasos:

1. Abre una terminal y navega hasta el directorio de tu proyecto Laravel.
2. Ejecuta el siguiente comando para instalar Laravel Yajra Datatables:

«`
composer require yajra/laravel-datatables-oracle
«`

3. Después de la instalación, agrega el proveedor de servicios y la fachada en el archivo `config/app.php`:

«`php
‘providers’ => [
// …
YajraDataTablesDataTablesServiceProvider::class,
],

‘aliases’ => [
// …
‘DataTables’ => YajraDataTablesFacadesDataTables::class,
],
«`

4. Publica los archivos de configuración y assets de Laravel Yajra Datatables ejecutando el siguiente comando:

«`
php artisan vendor:publish –tag=datatables
«`

5. Configura tu base de datos en el archivo `.env` de tu proyecto Laravel.

Con esto, Laravel Yajra Datatables estará instalado y listo para ser utilizado en tu proyecto Laravel.

Recomendado:  Create BMI Calculator using Python: Step-by-Step Guide

Configuración de la exportación

Antes de crear el botón de exportación, necesitamos configurar la exportación en el controlador de Laravel Yajra Datatables. Para hacer esto, sigue estos pasos:

1. Abre el controlador donde tienes definida la lógica de tu datatable.
2. Importa la clase `Excel` de Laravel Excel al principio del archivo:

«`php
use MaatwebsiteExcelFacadesExcel;
«`

3. Agrega un nuevo método en tu controlador para manejar la exportación. Por ejemplo:

«`php
public function export()
{
return Excel::download(new DataTableExport, ‘datatable.xlsx’);
}
«`

4. En el método `export()`, estamos utilizando el método `download()` de Laravel Excel para descargar el archivo Excel. Pasamos una nueva instancia de la clase `DataTableExport` como primer argumento y el nombre del archivo como segundo argumento.

5. Ahora, necesitamos crear la clase `DataTableExport` que será responsable de generar los datos para la exportación. Ejecuta el siguiente comando para generar la clase:

«`
php artisan make:export DataTableExport
«`

6. Abre el archivo `app/Exports/DataTableExport.php` y modifícalo de la siguiente manera:

«`php
use MaatwebsiteExcelConcernsFromCollection;
use DataTables;

class DataTableExport implements FromCollection
{
public function collection()
{
return DataTables::of(User::query())->make(true);
}
}
«`

7. En el método `collection()`, estamos utilizando el método `of()` de Laravel Yajra Datatables para obtener los datos de la tabla. Pasamos la consulta de los datos que deseamos exportar, en este caso, estamos utilizando el modelo `User` como ejemplo. Luego, llamamos al método `make(true)` para generar los datos en formato JSON.

Con esto, hemos configurado la exportación en el controlador de Laravel Yajra Datatables.

Creación del botón de exportación

Ahora que hemos configurado la exportación en el controlador, necesitamos crear un botón en la vista para permitir al usuario exportar los datos. Para hacer esto, sigue estos pasos:

Recomendado:  MATLAB vs. Python: Diferencias y comparación

1. Abre la vista donde tienes definida tu datatable.
2. Agrega el siguiente código HTML en la ubicación donde deseas mostrar el botón de exportación:

«`html
Exportar a Excel
«`

3. En el atributo `href`, estamos utilizando la función `route()` de Laravel para generar la URL del método `export()` en el controlador. Asegúrate de reemplazar `datatable.export` con el nombre de la ruta correspondiente en tu proyecto.

Con esto, hemos creado el botón de exportación en la vista.

Manejo de la exportación en el controlador

Ahora que hemos creado el botón de exportación, necesitamos manejar la exportación en el controlador. Para hacer esto, sigue estos pasos:

1. Abre el archivo `routes/web.php` de tu proyecto Laravel.
2. Agrega la siguiente ruta para manejar la exportación:

«`php
Route::get(‘datatable/export’, ‘DataTableController@export’)->name(‘datatable.export’);
«`

3. Asegúrate de reemplazar `DataTableController` con el nombre de tu controlador y `export` con el nombre del método de exportación en tu proyecto.

Con esto, hemos configurado la ruta para manejar la exportación en el controlador.

Prueba de la exportación

Ahora que hemos configurado todo, es hora de probar la exportación de datos de Laravel Yajra Datatables a un archivo Excel o CSV. Sigue estos pasos:

1. Ejecuta tu proyecto Laravel en el servidor local utilizando el siguiente comando:

«`
php artisan serve
«`

2. Abre tu navegador web y navega hasta la URL de tu proyecto Laravel.
3. Busca la página donde tienes definida tu datatable.
4. Haz clic en el botón «Exportar a Excel» que hemos creado.
5. Deberías ver que se descarga un archivo Excel o CSV con los datos de la datatable.

Recomendado:  Migration Commands en Laravel: Guía completa de comandos de migración

¡Felicidades! Has exportado con éxito los datos de Laravel Yajra Datatables a un archivo Excel o CSV utilizando un botón.

Conclusión

En este artículo, hemos aprendido cómo exportar datos de Laravel Yajra Datatables a un archivo Excel o CSV con un botón. Hemos configurado la exportación en el controlador de Laravel Yajra Datatables, creado el botón de exportación en la vista y manejado la exportación en el controlador. Ahora puedes utilizar esta funcionalidad en tu proyecto Laravel para exportar datos de tablas de manera fácil y rápida.

Autor

osceda@hotmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *