您现在的位置是:自如初>LaravelLaravel

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

温新 2021-02-12 00:44:28 Laravel 695人已围观

简介Laravel6.x及以上版本使用laravel-excel3.x做导出。​从Laravel3.x版本开始,Laravel2.x的方法已经被放弃。因此在使用安装最新版本的laravel-excel版本而使用旧的方法会直接报错。而很多教程大多停留在2.x版本。从Laravel5.8开始,可以直接使用Laravel-excel3.1版本,一般而言,新版本必然是大势所趋。本篇文章基于导出功能,做一个简单的学习记录。

从Laravel3.x版本开始,Laravel2.x的方法已经被放弃。因此在使用安装最新版本的laravel-excel版本而使用旧的方法会直接报错。而很多教程大多停留在2.x版本。从Laravel5.8开始,可以直接使用Laravel-excel3.1版本,一般而言,新版本必然是大势所趋。本篇文章基于导出功能,做一个简单的学习记录。

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

这样导出就完成了。


我是仲夏,学习不打烊。


很赞哦!(11)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:xyhcx@foxmail.com

站点信息