Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解


Posted in PHP onOctober 11, 2017

1、简介

本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧。

Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和 导出 。

该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel。

本地下载地址:http://xiazai.3water.com/201710/yuanma/Laravel-Excel-2.1(3water.com).rar

2、安装&配置

使用Composer安装依赖

本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出。

首先进入Laravel项目根目录下使用Composer安装依赖:

composer require maatwebsite/excel=~2.0

安装后的设置

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

Maatwebsite\Excel\ExcelServiceProvider::class,

同样在 config/app.php 中注册门面到 aliases 数组:

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

如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:

php artisan vendor:publish

执行成功后会在 config 目录下生成一个配置文件 excel.php 。

3、导出Excel文件

为了演示Laravel Excel相关功能,我们为本测试创建一个干净的控制器ExcelController.php:

php artisan make:controller ExcelController --plain

然后在routes.php中定义相关路由:

Route::get('excel/export','ExcelController@export');
Route::get('excel/import','ExcelController@import');

接下来我们先在ExcelController.php中定义export方法实现导出功能:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

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

use Excel;

class ExcelController extends Controller
{
 // Excel 文件到处功能

 public function export()
 {
  $cellData = [
   ['学号','姓名','成绩'],
   ['10001','AAAAA','99'],
   ['10002','BBBBB','92'],
   ['10003','CCCCC','95'],
   ['10004','DDDDD','89'],
   ['10005','EEEEE','96'],
  ];
  Excel::create('学生成绩',function ($excel) use ($cellData){
   $excel->sheet('score', function ($sheet) use ($cellData){
    $sheet->rows($cellData);
   });
  })->export('xls');
 }

}

Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

也有一个方法是直接从数组导入

$sheet->fromArray($anyArray);

如果你要导出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方法即可:

//Excel文件导入功能 By Laravel学院
public function import(){
 $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '学生成绩').'.xls';
 Excel::load($filePath, function($reader) {
  $data = $reader->all();
  dd($data);
 });
}

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

在浏览器中访问http://laravel.app:8000/excel/import,页面显示如下:

Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

使用Laravel Excel导入文件

当然,Laravel Excel还有很多其它功能,比如将Blade视图导出为Excel或CSV,以及对导入/导出更加细粒度的控制,具体可参考其官方文档:http://www.maatwebsite.nl/laravel-excel/docs

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php 计划任务 检测用户连接状态
Mar 29 PHP
php读取mysql的简单实例
Jan 15 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
php获取远程文件大小
Oct 20 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP检测接口Traversable用法详解
Dec 29 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
关于PHP求解三数之和问题详析
Nov 09 PHP
laravel migrate初学常见错误的解决方法
Oct 11 #PHP
Laravel学习基础之migrate的使用教程
Oct 11 #PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 #PHP
Laravel中的Blade模板引擎示例详解
Oct 10 #PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 #PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 #PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 #PHP
You might like
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
园林资料员岗位职责
2013/12/30 职场文书
优秀村官事迹材料
2014/01/10 职场文书
公司募捐倡议书
2014/05/14 职场文书
五一口号
2014/06/19 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS