jeanp/jexport

Biblioteca para generar reportes en excel en segundo plano

dev-master 2024-11-12 14:16 UTC

This package is auto-updated.

Last update: 2025-03-12 15:03:41 UTC


README

Biblioteca para exportar datos en segundo plano usando queues de laravel

Instalación

Paso 1: Dependencia

Instalar jeanp/jexport usando composer

  composer require jeanp/jexport

Paso 2: Proveedor

Necesitas actualizar la configuración de tu aplicación para poder registrar el paquete y Laravel pueda cargarlo, simplemente actualiza tu archivo config/app.php agregando el siguiente código al final de tu sección 'providers':

<?php
return [
    // ...
    'providers' => [
        Jeanp\JExport\Providers\JExportServiceProvider::class,
        // ...
    ],
    // ...
];

Paso 3: Publicar configuración

En tu terminal escribe:

php artisan vendor:publish --provider="Jeanp\JExport\Providers\JExportServiceProvider"

Se crearán los siguientes archivos en tu proyecto:

  • config/jexport.php
  • app/Models/Export.php
  • database/migrations/create_exports_table.php

Paso 4: Ejecutar migración

Esto creará una tabla llamada 'exports' en nuestra base de datos, la cuál tendrá el historial de todas las exportaciones realizadas.

php artisan migrate

Uso

Puedes crear un archivo de exportación ejecutando el siguiente comando:

php artisan make:jexport UsersExport

Para el ejemplo exportaremos todos los usuarios creados entre un rango de fechas

<?php

namespace App\Exports;

use App\Models\User;

class UsersExport{

    public function query($start_date, $end_date){

        $data = User::whereBetween('created_at', [$start_date, $end_date])->get();

        return $data;
    }

}

En tu controlador:

use Jeanp\JExport\JExport;
$start_date = '2023-01-01';
$end_date = '2025-01-01';

JExport::dispatch(
  namespace: UsersExport::class,
  args: compact('start_date','end_date'),
);

Asegúrate de tener activado los queues de Laravel. Puedes ejecutar:

  php artisan queue:work --queue=exports

Dependencias