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

2018年7月9日15:11:27 发表评论 1,260 阅读

这次是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');
    }
}

我们在浏览器中访问这个控制器,会导出一个名为

1
考勤记录表.xls

的Excel文件:

 

如果你要导出csv或者xlsx文件,只需将

1
export

方法中的参数改成csv或xlsx即可。

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

1
store

方法:

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

文件默认保存到

1
storage/exports

目录下,如果出现文件名中文乱码,将上述代码文件名做如下修改即可:

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

4、导入Excel文件

我们将刚才保存到服务器上的Excel文件导入进来,导入很简单,使用

1
Excel

门面上的

1
load

方法即可:

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

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

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

 

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

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

  • A+
所属分类:PHP
张晔璇

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: