Laravel Excel安裝及最簡單使用
阿新 • • 發佈:2021-10-20
官網: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檔案
結果: