Laravel

Agregar encabezados en Laravel Excel

¿Cómo incluir encabezados al exportar Eloquent a Excel en Laravel?

Agregar encabezados en Laravel Excel?. En Laravel es muy importante exportar información de base de dados en extensión de Excel. En tal sentido, aprenderemos a colocar encabezados con la función headings().

¿Cómo agregar encabezados en ficheros excel en Laravel Excel?

Básicamente, tenemos que agregar una función de nombre headings() y declarar las columnas a mostrar a la hora de exporta en excel. Ademas, de cumplir estos 3 pasos.

  • Declarar use Maatwebsite\Excel\Concerns\WithHeadings; en el encabezado de nuestro fichero de exportación
  • Agregar WithHeadings en nuestra clase de exportacion class ProductExport implements FromQuery, WithHeadings {}
  • Agregar la funcion heading()
    public function headings(): array
    {
    return ["name", "description", "details"];
    }

Nota:

Según la documentación, puede cambiar su clase para usar la interfaz WithHeadings y luego definir la función headers para devolver una matriz de encabezados de columna:

Ahora veamos la integración completa.

<?php
namespace App;
use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ProductExport implements FromQuery, WithHeadings
{
    use Exportable;
    public function __construct(int $id)
    {
        $this->id = $id;
    }
    public function query()
    {
        return Product::query()->where('id', $this->id);
    }
    public function headings(): array
    {
        return ["name", "description", "details"];
    }
}

Este modelo de integración funciona con todos los tipos de exportación (FromQuery, FromCollection, etc.)

Ejemplo 02: Agregar encabezados a exportación FromCollection

Es casi similar, veamos la diferencias,e sta vez usaremos query builder

<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use DB;
class ProductExport implements FromCollection,WithHeadings
{
    public function collection()
    {
        $type = DB::table('products')->select('name', 'description','details')->get();
        return $type ;
    }
     public function headings(): array
    {
        return [
            'name',
            'description',
            'details'
        ];
    }
}

Espero que esto ayude para que puedan integrar encabezados en el paquete laravel-excel. Además, en un artículo anterior vimos como instalar este popular paquete.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.
Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad