Cómo cambiar los nombres de las columnas en Excel Laravel?
Utilizo esta biblioteca para exportar datos de una colección a un archivo de Excel. Por defecto, obtengo los nombres de las columnas como nombres de los campos de la tabla.
¿Cómo puedo reemplazar los nombres de las columnas por los propios?
Tengo una clase abstracta propia:
abstract class Excel
{
abstract public function export();
public function download()
{
$this->file = \Excel::create($this->filename, function ($excel) {
$excel->sheet($this->sheetname, function ($sheet) {
$sheet->fromArray($this->data->toArray());
});
})->store($this->typefile, $this->path_save);
}
}
Mi archivo de Excel:
<?php
namespace App\Library;
use App\Library\Excel;
use App\DistributorContacts;
use App\PersonalityTraits;
use App\Helpers\Helper;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ExcelConclusions extends Excel implements WithHeadings
{
public $type = "_conclusions";
public function headings(): array
{
return ["tus", "encabezados", "aquí"];
}
public function export()
{}
}
davy.ai
Para reemplazar los nombres de las columnas por su cuenta:
ExcelConclusions
para implementar la interfazWithHeadings
.headings()
para devolver un arreglo con los nombres de las columnas personalizados.download()
de su clase abstractaExcel
, pase la implementación deWithHeadings
como un parámetro al métodosheet()
.Aquí está una versión actualizada de su código:
En el método
download()
actualizado, agregamos un parámetro$withHeadings
de tipoWithHeadings
y lo pasamos al métodosheet()
utilizando el métodowith()
. Esto usará los nombres de columna personalizados proporcionados en el métodoheadings()
. Si$withHeadings
es nulo, se utilizarán los nombres de columna predeterminados.