在 Laravel 中使用 Laravel Excel 实现 Excel/CSV 文件导出功能

首先在 Laravel 项目根目录下使用 Composer 安装依赖:

composer require maatwebsite/excel

在 config/app.php 中注册服务提供者到 providers 数组:

Maatwebsite\Excel\ExcelServiceProvider::class,

同样在 config/app.php 中注册门面到 aliases 数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

如果想要对 Laravel Excel 进行更多的自定义配置,执行如下 Artisan 命令:

php artisan vendor:publish

执行成功后会在 config 目录下生成一个配置文件 excel.php 。

接下来,创建一个导出类:

php artisan make:export UsersExport --model=User

在 app/Exports 目录下将会生成一个 UsersExport.php 文件,内容如下:

<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}

然后在控制器中就可以调用导出功能:

<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller 
{
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

添加访问路由:

Route::get('users/export/', 'UsersController@export');

备注:要配合 Model 一起使用,并且 config/database.php 文件中必须配置有 connections[mysql] 值,否则调用时会报错:“Database connection [mysql] not configured. ”,详细使用方法可参看官方文档( https://docs.laravel-excel.com/3.1/exports/ )。