- 安装包
composer require maatwebsite/excel
- 安装后的设置在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
- 同样在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
- 如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:
php artisan vendor:publish
执行成功后会在config目录下生成一个配置文件excel.php
- 创建数据表迁移测试
php artisan make:model ExcelTel -m
Schema::create('excel_tels', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('title');
$table->timestamps();
});
执行迁移 php artisan migrate
- 生成测试数据
php artisan tinker
>>> factory(App\ExcelTel::class, 10000)->create();
- 导出
public function export()
{
/*
* 如果你要导出csv或者xlsx文件,只需将 export 方法中的参数改成csv或xlsx即可。
* 如果还要将该Excel文件保存到服务器上,可以使用 store 方法:
*/
$items = ExcelTel::get()->toarray();
$header = ['id','姓名','标题','创建时间','更新时间'];
foreach ($items as $key=>$item){
$cellData[] = array_values($item);
}
array_unshift($cellData,$header);
Excel::create('excel',function($excel) use ($cellData){
$excel->sheet('excel', function($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->store('csv')->export('csv');
}
- 导入
public function import(Request $request)
{
$filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', 'excel').'.xls';
\Excel::load($filePath, function($reader) {
$data = $reader->all()->toarray();
//$results = $reader->get()->toArray();
dd($data);
});
return 'Ok';
}