https://docs.laravel-excel.com/3.1/exports... 這裡是官方文件
安裝命令:
composer require maatwebsite/excel
加入服務提供者
'providers' => [
/*
* Package Service Providers...
*/
Maatwebsite\Excel\ExcelServiceProvider::class,
]
加入門面
'aliases' => [
...
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
建立配置檔案
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
匯入Excel :
建立一個 匯入基類
php artisan make:import Import
匯入基類會有很多種處理方式:
- 使用集合:
namespace \App\Import; use Maatwebsite\Excel\Concerns\ToCollection; class Import implements ToCollection { /** * @param Collection $collection */ public function collection(Collection $collection) { // return $collection; } }
- 使用模型:
namespace \App\Import; use Maatwebsite\Excel\Concerns\ToModel; class Import implements ToModel { /** * @param array $row * * @return User|null */ public function model(array $row) { return new \App\User([ 'name' => $row[0], 'email' => $row[1], 'password' => Hash::make($row[2]), ]); } }
-
控制器程式碼(這裡把匯入結果寫入到檔案)
public function testImport() { $a = \Excel::toArray(new \App\Imports\Import,'test.xlsx','public'); if(is_array($a)){ $this->arrToStr($a); } Storage::append('file.log', $this->str); } public function arrToStr($arr){ foreach($arr as $val){ if(is_array($val)){ $this->arrToStr($val); } else { $this->str.=$val; } } }
匯出Excel :
建立一個匯出基類
php artisan make:export Export
匯出的資料來源也有很多種方式
- 匯出集合
namespace App\Exports;
use Maatwebsite\Excel\Concerns\FromCollection;
class Export implements FromCollection
{
/**
* @return \Illuminate\Support\Collection
*/
public function __construct($invoices)
{
$this ->invoices = $invoices;
}
public function collection()
{
return $this->invoices->all();
}
}
- 控制器程式碼
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class test extends Controller
{
//
public function testExport(){
$test = new \App\test;
return \Excel::download(new \App\Exports\Export($test), 'users.xlsx');
}
}
https://www.cmfac.com 這是我的站~
本作品採用《CC 協議》,轉載必須註明作者和本文連結