composer require maatwebsite/excel
Create an export class in app/Exports
php artisan make:export UsersExport --model=User
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
class UsersExport implements FromCollection,WithMapping, WithHeadings, ShouldAutoSize,WithColumnFormatting
{
protected array $data;
public function __construct(array $data)
{
$this->data = $data;
}
public function collection()
{
return collect($this->data);
}
/**
* 设置头部
* @return array
*/
public function headings(): array
{
return [
'编号',
'账号',
'手机号',
// ....
];
}
/**
* 设置显示字段 与 头部对应
* @return array
*/
public function map($row): array
{
return [
'id' => $row->id,
// .....
];
}
/**
* 设置对应列的输出单元格的字符类型
* @return array
*/
public function columnFormats(): array
{
return [
'B' => NumberFormat::FORMAT_DATE_DDMMYYYY,
'C' => NumberFormat::FORMAT_NUMBER_00,
];
}
}
<?php
namespace App\Http\Controllers;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\UsersExport;
class UserController
{
public function export()
{
$excel = [
['id'=>1],
// ....
];
return Excel::download(new UsersExport($excel), 'filename.xlsx');
}
}