最新 laravel maatwebsite/excel ^3.1 導出方法詳解


1、安裝

使用命令行 用 composer 安裝 maatwebsite/excel

 執行以下代碼

composer require maatwebsite/excel

 

 

 Package manifest generated successfully. 表示安裝成功

 

打開config/app.php文件

添加以下代碼

'providers' => [
     
     Maatwebsite\Excel\ExcelServiceProvider::class,
]

  

 'aliases' => [

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

],

 

發布配置,請運行 vendor publish 命令:

php artisan vendor:publish

 將會自動創建一個新配置文件config/excel.php

3、用法

先創建導出類,以導出用戶為例

php artisan make:export UserExport

將會自動創建一個新文件app/Exports/UserExport.php

 

 以下為導出類代碼(UserExport.php)

<?php

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;

class UserExport implements FromCollection
{
    private $row;
    private $data;

    public function __construct($row,$data)
    {
        $this->row = $row;
        $this->data = $data;
    }

    public function collection()
    {
        $row = $this->row;
        $data = $this->data;

        //設置表頭
        foreach ($row[0] as $key => $value) {
            $key_arr[] = $key;
        }

        //輸入數據
        foreach ($data as $key => &$value) {
            $js = [];
            for ($i=0; $i < count($key_arr); $i++) {
                $js = array_merge($js,[ $key_arr[$i] => $value[ $key_arr[$i] ] ]);
            }
            array_push($row, $js);
            unset($val);
        }
        return collect($row);
    }
}

4、調用方法 導出文件(UserController .php)

<?php namespace App\Http\Controllers\Admin; use Maatwebsite\Excel\Facades\Excel; use App\Exports\UserExport; use App\Models\User as userModel;

class UserController extends Controller { /** * 用戶列表導出 * @param Request $request */ public function user_export(Request $request){
    //設置表頭 $row = [[ "id"=>'ID', "nickname"=>'用戶昵稱', "gender_text"=>'性別', "mobile"=>'手機號', "addtime"=>'創建時間 ' ]]; //數據$list=[ 0=>[ "id"=>'1', "nickname"=>'張三', "gender_text"=>'男', "mobile"=>'18812345678', "addtime"=>'2019-11-21 ' ], 2=>[ "id"=>'2', "nickname"=>'李四', "gender_text"=>'女', "mobile"=>'18812349999', "addtime"=>'2019-11-21 ' ] ];
  
    //執行導出 return Excel::download(new UserExport($row,$list), date('Y:m:d ') . '用戶列表.xls'); } }

導出完成

 

 

覺得好用的話,給個贊!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM