1、composer安装PHPExcel插件php
一、在框架根目录下安装依赖web
composer require "maatwebsite/excel:~2.1.0"
二、打开框架在config/app.php中注册服务提供者到providers数组:数组
Maatwebsite\Excel\ExcelServiceProvider::class,
三、打开框架在config/app.php中注册门面到aliases数组:缓存
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
四、建议生成Laravel Excel的配置文件,使用以下命令:服务器
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
而后你会发如今config目录下有一个excel.php文件
你能够打开看一下大概的配置项,主要就是缓存,表单,和导入,导出的一些设置app
2、导出文件composer
一、打开web.php文件建立两个路由框架
Route::any('excel/export','ExcelController@export');
Route::any('excel/import','ExcelController@import');
二、建立控制器ExcelController.php文件ide
三、导出的方法ui
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Excel; class ExcelController extends Controller { public function show() { return view('Excel/exe'); } //Excel文件导出功能 public function export() { $cellData = [ ['编号','姓名','绩效','电话号码'], ['10001','AAAAA','99','150-xxxx-xxxx'], ['10002','BBBBB','92','137-xxxx-xxxx'], ['10003','CCCCC','95','157-xxxx-xxxx'], ['10004','DDDDD','89','177-xxxx-xxxx'], ['10005','EEEEE','96','188-xxxx-xxxx'], ['10006','FFFFF','96','180-xxxx-xxxx'], ['10007','ggggg','96','181-xxxx-xxxx'], ['10008','HHHHH','96','182-xxxx-xxxx'], ]; /* * 若是你要导出csv或者xlsx文件,只需将 export 方法中的参数改为csv或xlsx便可。 * 若是还要将该Excel文件保存到服务器上,可使用 store 方法: */ Excel::create(iconv('UTF-8', 'GBK', '模板文件'),function($excel) use ($cellData){ $excel->sheet('score', function($sheet) use ($cellData){ $sheet->rows($cellData); }); })->store('xls')->export('xls'); } }
上述代码释义:
a. ini_set设置内存溢出大小和超时时间是由于个人数据量比较大,不想直接去php.ini中修改,因此直接在这设置。你也能够修改excel.php配置项中的缓存大小,适当调整。
b. 首先你得须要知道cellData是一个二维数组,而且二维数组中的每个一维数组必须是索引数组才行,这样格式上才能正确。
3、导入文件
//Excel文件导入功能 public function import() { $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '用户信息').'.xls'; Excel::load($filePath, function($reader) { $data = $reader->all(); dd($data); }); }