php laravel导入excel,Laravel- 后台批量导入 Excel

最近做的一个H5网站 有一个后台批量录入信息列表的功能,上网搜索了一下,发现了maatwebsite/excel 依赖,在此说明一下具体的实现流程。

1.安装

值得一提的是本人使用的是laravel 5.5版本,在安装依赖的时候一定注意要加上版本号2.1。因为最新版本在5.5上面会有报错提示。

a.在根目录安装依赖

composer require "maatwebsite/excel:~2.1.0"

b.在config/app.php中注册服务提供者到providers数组:

Maatwebsite\Excel\ExcelServiceProvider::class,

c.在config/app.php中注册到aliases数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

d.生成Laravel Excel的配置文件:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

2.实现

因为我后台使用的是layui框架,自带一键导出功能,所以在只说一下excel的导入功能。以本人的代码为例。

//批量导入

use Excel;

public function import(Request $req){

try {

//获取上传的excel文件

$filePath = $req->get('report');

Excel::load($filePath, function($reader) {

$data = $reader->all();

//批量存储

$value=[];

$count = '';

foreach ($data as $k => $v ){

$count++;

//存储表格每行的值

$value['value1']=$v['行1'];

$value['value2']=$v['行2'];

$value['value3']=$v['行3'];

$value['value4']=$v['行4'];

$value['value5']=$v['行5'];

Adver::create($value);

}

//返回导入结果

throw new Exception("成功导入了".$count."条数据");

});

}catch(Exception $e){

return $this->doFailure($e);

}

}

以上就是在laravel框架实现,批量导入excel并存入数据库的实现方式。

3.导出Excel(补充)

首先创建路由:

` Route::get('/admin/export','Admin\AdverController@export');`

以本人的代码为例,以下是具体的实现流程:

```

//一键导出

public function export(Request $req){

try {

ini_set('memory_limit','500M');

//设置超时限制为0分钟

set_time_limit(0);

//获取数据库数据

$cellData = P_rank::select('user_name','t_all','all_time')->orderBy('t_all', 'DESC')->orderBy('all_time', 'ASC')->get()->toArray();

//整合数据

$cellData[0] = array('昵称','总答题数','总答题时间');

for($i=0;$i

$cellData[$i] = array_values($cellData[$i]);

$cellData[$i][0] = str_replace('=',' '.'=',$cellData[$i][0]);

}

//输出excel

Excel::create('排行榜信息',function($excel) use ($cellData){

$excel->sheet('score', function($sheet) use ($cellData){

$sheet->rows($cellData);

});

})->export('xls');

die;

}catch(Exception $e){

return $this->doFailure($e);

}

}

```

本作品采用《CC 协议》,转载必须注明作者和本文链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值