1. 程式人生 > 其它 >Laravel Excel安裝及最簡單使用

Laravel Excel安裝及最簡單使用

官網:https://docs.laravel-excel.com

1、安裝

1.1、安裝要求:

PHP: ^7.0

Laravel: ^5.5

PhpSpreadsheet: ^1.6

PHP擴充套件已php_zip啟用

PHP擴充套件已php_xml啟用

PHP擴充套件已php_gd2啟用

1.2、安裝

//安裝
composer require maatwebsite/excel

在laravel專案config/app.php中

//providers元素新增
Maatwebsite\Excel\ExcelServiceProvider::class,

//aliases元素新增
'Excel' => Maatwebsite\Excel\Facades\Excel::class,

釋出配置

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
//將自動建立一個新配置檔案config/excel.php

2、匯出

2.1、新建匯出類

php artisan make:export TestExport
//執行後會在新建app/Export/TestExport.php檔案

2.2、匯出類實現FromArray介面

新建的export,預設實現的介面是FromCollection,更改為FromArray,實現array方法

FromCollection以後有機會再講

一般匯出會傳個id,到資料庫查資料,例子傳了個id但沒到資料庫查詢

use Maatwebsite\Excel\Concerns\FromArray;

class TestExport implements FromArray
{
    private $id;
    public function __construct($id)
    {
        $this->id = $id;
    }
  
    public function array(): array
    {
        $data = [[$this->id,$this->id,$this->id],[1,2,3],[4,5,6],[7,8,9]];//測試資料
        return $data;
    }
}

2.3、控制器中匯出

use Maatwebsite\Excel\Facades\Excel;

class TestController extends Controller
{
    public function export($id)
    {
        return Excel::download(new TestExport($id),'test.xlsx');
    }
}

2.4、定義路由

Route::get('/test/export/id/{id}', 'TestController@export');

2.5、結果

訪問:xx.com/test/export/id/1即可匯出

3、匯入

3.1、新建匯入類

php artisan make:import TestImport
//執行後會在新建app/Export/TestExport.php檔案

3.2、匯入類實現FromArray介面

新建的import,預設實現的介面是ToCollection,更改為ToArray,實現array方法

ToCollection以後有機會再講

use Maatwebsite\Excel\Concerns\ToArray;

class TestImport implements ToArray
{
    public function array(array $array)
    {
        //處理匯入資料$array
        //...
        return $array;
    }
}

3.3、控制器匯入

將上面匯出的test.xlsx,放到/public/file目錄下

public function import()
{
     $array = Excel::toArray(new TestImport, public_path('/file/test.xlsx'));
     dd($array);//簡單的列印一下
}

3.4、定義路由

copyRoute::get('/test/import', 'TestController@import');

3.5、結果

訪問:xx.com/test/import即可匯出,

這裡匯入非手動選擇,而是指定了檔案路徑/public/file/test.xlsx檔案

結果: