美文网首页
Laravel6.x及以上版本使用laravel-excel3.

Laravel6.x及以上版本使用laravel-excel3.

作者: 耍帅oldboy | 来源:发表于2021-09-06 20:39 被阅读0次

    一切案例学习从官方文档开始https://docs.laravel-excel.com/3.1/exports/collection.html

    我使用的版本是laravel-excel3.1.26,也就是目前最新的版本。

    第一步:安装

    composer require maatwebsite/excel
    

    第二步:配置(可选)

    文件位置config/app.php

    'providers' => [
       // 此处省略默认配置
       Maatwebsite\Excel\ExcelServiceProvider::class,
    ]
       
    'aliases' => [
       // 此处省略默认配置
       'Excel' => Maatwebsite\Excel\Facades\Excel::class,
    ]
    

    发布

    php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
    

    第2步可以直接省略,也就是说,安装完后即可使用。

    第三步:创建自定义导出文件

    该命令app/Exports目录下生成对应的文件

    php artisan make:export TestExport
    

    生成后的文件内容

    <?php
    
    namespace App\Exports;
    
    use Maatwebsite\Excel\Concerns\FromCollection;
    
    class TestExport implements FromCollection
    {
       /**
       * @return \Illuminate\Support\Collection
       */
       public function collection()
       {
           //
       }
    }
    

    第四步:编辑导出文件

    默认是返回集合,这里根据需求,修改成数组

    <?php
    
    namespace App\Exports;
    
    use Maatwebsite\Excel\Concerns\FromArray;
    use App\User;
    
    class TestExport implements FromArray
    {
    
       public function array(): array
       {
           $data = [
               // 设置表头信息
               ['序号','姓名','性别','年龄'],
           ];
           // 取出需求导出的数据
           $userDatas = User::get();
           foreach ($userDatas as $k => $v) {
               $data[] = [
                   $v->id,
                   $v->name,
                   $v->gender,
                   $v->age,
               ];
           }
    
           return $data;
       }
    }
    

    第五步:定义路由与方法

    路由

    Route::get('export','TestController@export');
    

    控制器方法

    <?php
    
    namespace App\Http\Controllers;
    
    use App\Exports\TestExport;
    use Excel;
    
    class QuestionController extends Controller
    {
       // 导出
       public function export()
       {
           return Excel::download(new TestExport(), 'user.xlsx');
       }
    }
    

    这样导出就完成了。

    相关文章

      网友评论

          本文标题:Laravel6.x及以上版本使用laravel-excel3.

          本文链接:https://www.haomeiwen.com/subject/cdsywltx.html