laravel 框架 excel 导入 导出
2018-08-02 本文已影响46人
远方不会远
一.Composer安装依赖
在Laravel项目根目录下使用Composer安装依赖
composer require maatwebsite/excel ~2.1
二.注册服务 修改设置
在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,
三.创建一个控制器Excel
创建一个控制器ExcelController.php:
php artisan make:controller ExcelController
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Excel;
use App\Http\Requests;
class ExcelController extends Commoncontroller
{
//
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;
}
}
四、定义相关路由
图片.pngRoute::get('export','ExcelController@export'); Route::get('import','ExcelController@import');
五、温馨提示
如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx。
store方法,将该Excel文件保存到服务器上,文件默认保存到storage/exports目录下,iconv()是为了防止文件名中文乱码。
六、效果展示
<li class="layui-btn " onclick="user_add('导出','{{asset('admin/export')}}',1500,800);">
<i class="layui-icon"></i>导出
</li>
<li class="layui-btn " onclick="user_add('导入','{{asset('admin/import')}}',1500,800);">
<i class="layui-icon"></i>导入
</li>
图片.png
6777727-79f7a48fa3fcadca.png点击导出
6777727-62205b36ee871782.png项目文件夹
图片.png点击导入
好了 今天就写到这
如果对您有所帮助的话 还请帮忙 点下 小 ♥♥♥
===========