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

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

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

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

<?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中国,我修稍作修改!!

张晔璇

博主是男的!不是萌妹纸!

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐