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;

}

 }

四、定义相关路由

        Route::get('export','ExcelController@export');
        Route::get('import','ExcelController@import');
图片.png

五、温馨提示

如果你要导出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">&#xe654;</i>导出
                </li>
                  <li class="layui-btn " onclick="user_add('导入','{{asset('admin/import')}}',1500,800);">
                    <i class="layui-icon">&#xe654;</i>导入
                </li>
图片.png
点击导出
6777727-79f7a48fa3fcadca.png
项目文件夹
6777727-62205b36ee871782.png
点击导入
图片.png

好了 今天就写到这

如果对您有所帮助的话 还请帮忙 点下 小 ♥♥♥

===========

上一篇下一篇

猜你喜欢

热点阅读