• 交流QQ群:191332522

  • ?????

  • 啊啊,说说还没改完,没时间了,只能下个星期继续改了!

  • 改版改版发一条说说

Laravel 5.4及以下 中使用Laravel Excel插件实现Excel导入导出

PHP 张晔璇 1年前 (2018-07-09) 1603次浏览 已收录 扫描二维码

这次是5.4及以下,5.5及以上最好使用最新的3.0版本!虽然2.1版本也支持Laravel5.6版本!

因为我的项目是Laravel5.4写的 并没有打算升级到5.5。

这里我就省略安装过程了!直接上使用代码了!

Laravel 5.4及以下 中使用Laravel Excel插件实现Excel导入导出

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Excel;

class ExcelController extends Controller
{
    
    public function export(){
        $cellData = [
            ['编号','姓名','考勤'],
            ['1','A','29'],
            ['2','B','10'],
            ['3','C','15'],
            ['4','D','25'],
            ['5','E','25'],
        ];
        Excel::create('考勤记录表',function($excel) use ($cellData){
            $excel->sheet('score', function($sheet) use ($cellData){
                $sheet->rows($cellData);
            });
        })->export('xls');
    }
}

我们在浏览器中访问这个控制器,会导出一个名为考勤记录表.xls的Excel文件:

 

如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx即可。

如果还要将该Excel文件保存到服务器上,可以使用store方法:

Excel::create('学生成绩',function($excel) use ($cellData){
     $excel->sheet('score', function($sheet) use ($cellData){
         $sheet->rows($cellData);
     });
})->store('xls')->export('xls');

文件默认保存到storage/exports目录下,如果出现文件名中文乱码,将上述代码文件名做如下修改即可:

iconv('UTF-8', 'GBK', '学生成绩')

4、导入Excel文件

我们将刚才保存到服务器上的Excel文件导入进来,导入很简单,使用Excel门面上的load方法即可:

public function import(){
    $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '考勤记录表').'.xls';
    Excel::load($filePath, function($reader) {
        $data = $reader->all();
        dd($data);
    });
}

load方法基于项目根路径作为根目录,同样我们对中文进行了转码,否则会提示文件不存在。

当然使用这个需要把 需要上传数据文件上传到服务器上!

 

Laravel 5.4及以下 中使用Laravel Excel插件实现Excel导入导出

文章来源Laravel中国,我修稍作修改!!


码酷博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Laravel 5.4及以下 中使用Laravel Excel插件实现Excel导入导出
喜欢 (0)