laravel excel的安装和使用
1,使用Composer安装依赖
在Laravel项目根目录下使用Composer安装依赖:
composer require maatwebsite/excel ~2.1
ps:一定要加上~2.1!!!因为现在已经更新到3.0版本了,如果你不加的话,会安装最新的3.0版本!等运行时候就会报错,类似下面这样的报错
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)Call to undefined method Maatwebsite\Excel\Excel::create(),
2,安装后,修改设置
在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
执行Artisan命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
执行成功后会在config目录下生成文件excel.php。
修改生成的excel.php文件
大约是在431行,将'to_ascii' => true,改为
'to_ascii' => false,
<?php namespace App\Http\Controllers; use App\Http\Requests; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Excel; class ExcelController extends Controller { public function export() { $cellData = [ ['id','姓名','年龄'], ['10001','张三','19'], ['10002','李四','22'], ['10003','王五','23'], ['10004','赵六','19'], ['10005','猴七','22'], ]; $name = iconv('UTF-8', 'GBK', '成员信息'); Excel::create($name,function($excel) use ($cellData){ $excel->sheet('score', function($sheet) use ($cellData){ $sheet->rows($cellData); }); })->store('xls')->export('xls'); } public function import(){ $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '成员信息').'.xls'; Excel::load($filePath, function($reader) { $data = $reader->all(); dump($data); }); exit; } }