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.