Tamaño automático de celdas al exportar con Laravel-Excel
Aprenderemos a programar las celdas para que tengan un ancho automático o ancho personalizado.

Tamaño automático de celdas al exportar con Laravel-Excel. Por defecto el paquete de exportación Laravel-Excel a la hora de exportar las celdas se exportan d emanera ajustada. Por lo tanto, aprenderemos a configurar de manera personalizada el ancho de las celdas en ficheros excel en la exportacion.
¿Como exportar ficheros excel con celdas de tamaño automatico con Laravel-Excel?
Para autoajustar el tamaño de las celdas al exportar un archivo de Excel con Laravel-Excel
, puedes usar la clase WithColumnAutoSize
en tu fichero de exportación.
Vamos a explicar los 4 pasos que debemos de seguir y también pueden ver la documentación oficial.
- Primer paso: Instalar Laravel Excel (si no lo has hecho):
composer require maatwebsite/excel
- Segundo paso: Crea una clase de exportación:
php artisan make:export UsersExport --model=User
- Tercer paso: Edita la clase de exportación (
UsersExport.php
): Agrega la interfazWithColumnWidths
oWithColumnAutoSize
según lo que necesites.namespace App\Exports; use App\Models\User; use Maatwebsite\Excel\Concerns\FromCollection; use Maatwebsite\Excel\Concerns\WithHeadings; use Maatwebsite\Excel\Concerns\ShouldAutoSize; class UsersExport implements FromCollection, WithHeadings, ShouldAutoSize { public function collection() { return User::all(); } public function headings(): array { return ["ID", "Nombre", "Correo", "Fecha de Creación"]; } }
- Cuarto paso: Descargar el archivo en el controlador:
use App\Exports\UsersExport; use Maatwebsite\Excel\Facades\Excel; class UserController extends Controller { public function export() { return Excel::download(new UsersExport, 'usuarios.xlsx'); } }
Explicación de los 4 pasos de auto Size celdas en laravel Excel:
ShouldAutoSize
: Autoajusta automáticamente el tamaño de las columnas.WithHeadings
: Agrega encabezados personalizados.FromCollection
: Exporta los datos desde un modelo Eloquent.
Si necesitas personalizar mas a fondo el ancho de cada columnas y tener más control sobre el tamaño de cada columna, puedes usar WithColumnWidths
en lugar de ShouldAutoSize
:
¿Como personalizar el ancho de cada columna con Laravel-Excel?
A continuación, veremos ejemplos de como tener el máximo control sobre las celdas en exportación de excel.
use Maatwebsite\Excel\Concerns\WithColumnWidths;
class UsersExport implements FromCollection, WithHeadings, WithColumnWidths
{
public function columnWidths(): array
{
return [
'A' => 10,
'B' => 20,
'C' => 30,
'D' => 25,
];
}
}
Otro ejemplo de interacciona seria lo siguiente
namespace App\Exports;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class InvoicesExport implements ShouldAutoSize
{
...
}
Con esto esperamos que ayude a personar el ancho de cada columna o dejarlo el ancho de manera automática con ShouldAutoSize
.
