Laravel7|Laravel7 安装使用maatwebsite/excel 3

1.安装maatwebsite/excel
我这里是laravel7的最后一个版本v7.30.1,截至本文章发布,maatwebsite/excel的最新版本为3.1.26,所以我这里并没有指定版本。

composer require maatwebsite/excel

如果要指定版本,也可以执行如下命令安装
composer require maatwebsite/excel ~3.1

Maatwebsite\Excel\ExcelServiceProvider默认会自动发现和注册。
如果你想自己注册它,可以在config/app.php中添加ServiceProvider:
'providers' => [ /* * Package Service Providers... */ Maatwebsite\Excel\ExcelServiceProvider::class, ]

Excel facade也是自动发现的。
如果你想手动添加它,可以在config/app.php中添加Facade:
'aliases' => [ ... 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]

要发布配置,使用vendor publish命令执行注册:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

如果成功,这将创建一个名为config/excel.php的新配置文件。
2.表格导出
【Laravel7|Laravel7 安装使用maatwebsite/excel 3】app/Exports中创建一个导出类
你可以使用make:export命令来做这件事。
php artisan make:export UsersExport --model=User

如果执行成功,可以在app/Exports中找到该文件UsersExport.php
当然,如果你喜欢手动创建,你可以在app/Exports中创建以下内容:

我们在控制器中,现在可以调用这个export,我这里是UsersController控制器,你也可以创建其它控制器都可以。
目前我测试的可以正常到处csv、xls、xlsx等,只需要将users.xlsx,改成对应的csv、xls、xlsx后缀名即可。
按官方代码中来说,支持(xlsx、xlsm、 xltx、 xltm、 xls、xlt、ods、ots、slk、xml、gnumeric、htm、html、csv、tsv、pdf),具体有兴趣可以自己测试。

最后添加一个可以访问导出的路由:
Route::get('users/export/', 'UsersController@export');

3.表格导入
app/Imports中创建一个导入类
你可以使用make:import命令来做这件事。
php artisan make:import UsersImport --model=User

如果执行成功,可以在app/Imports中找到该文件UsersImport.php:
当然,如果你喜欢手动创建,你可以在app/Imports中创建以下内容:
$row[0], 'email'=> $row[1], 'password' => Hash::make($row[2]), ]); } }

我这里是UsersController控制器,你也可以创建其它控制器都可以:
use App\Imports\UsersImport; use Maatwebsite\Excel\Facades\Excel; use App\Http\Controllers\Controller; class UsersController extends Controller { public function import() { Excel::import(new UsersImport, 'users.xlsx'); return redirect('/')->with('success', 'All good!'); } }

最后,同样添加一个可以访问导入的路由。注意:这里是导入的用户表,测试的时候要注册导入数据要符合字段类型和长度。具体的users表导入字段可以查看app\User.php
Route::get('users/import/', 'UsersController@import');

好了,现在可以愉快的开始玩耍啦。更多的玩法可以参考官方文档:
https://docs.laravel-excel.com/3.1/getting-started/

    推荐阅读