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

2021-09-06  本文已影响0人  耍帅oldboy

一切案例学习从官方文档开始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');
   }
}

这样导出就完成了。

上一篇下一篇

猜你喜欢

热点阅读