laravel 使用Composer实现Excel导入导出
简介
Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和导出。
安装&配置
使用Composer安装依赖
首先在Laravel项目根目录下使用Composer安装依赖(在laravel框架内):
composer require maatwebsite/excel ~2.1
如果报错则在执行下图,无出错则跳过
然后在composer运行
composer update
安装后的设置
在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
同样在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
执行Artisan命令:
php artisan vendor:publish
执行成功后会在config目录下生成文件excel.php。
修改生成的excel.php文件
大约是在431行,将’to_ascii’ => true,改为
'to_ascii' => false,在这里插入代码片
(防止中文乱码)
创建一个控制器ExcelController.php:
php artisan make:controller ExcelController
然后在routes.php中定义相关路由:
Route::get('excel/export','ExcelController@export');
Route::get('excel/import','ExcelController@import');
然后实现导出、导入功能:
<?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;
}
}
如有出错联系我:
q邮箱:1803821084@qq.com
163邮箱:m13523238379@163.com