Laravel maatwebsite/Excel 3.1导入

3.1版本跟2.*版本差别还挺大,升级后也更符合面向对象思想,子类必须去实现父类方法,这具体可以参考以下案例:

1
$ composer require maatwebsite/exce

在conf/app.php中添加:

1
2
3
4
5
6
7
8
'providers' => [ 
//.......
Maatwebsite\Excel\ExcelServiceProvider::class,
]
'aliases' => [
//....
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

发布配置,生成Excel.php的配置文件:

1
$ php artisan vendor:publish //这边会让选择 记得选择excel那个

在控制器可写:

1
2
3
4
5
6
7
8
public function importQuestion(Request $request)
{
$excel_file_path = $request->file('question');//接受文件路径
$datas = Excel::toArray(new Import, $excel_file_path);
//注意: 这里toArray()传第一个参数是,即将插入数据的对象,
//该对象必须对toArray()重写
//返回的$datas,接下来业务
}

重写方法对象:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//对该对象的重写,重写还有toModel,toCellection。。具体根据你的业务实现选择
可参看官方文档:https://laravel-excel.maatwebsite.nl/3.1/getting-started/installation.html


use Maatwebsite\Excel\Concerns\ToArray;

class Import implements ToArray
{

//重新父类实现
public function array(array $array){

return $array;
}


}

Laravel maatwebsite/Excel 3.1导入
https://randzz.cn/506dc4c1bb33/laravel-maatwebsite-excel-3-1导入/
作者
Ezreal Rao
发布于
2019年3月28日
许可协议