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 相关文章推荐
利用static实现表格的颜色隔行显示
Oct 09 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
PHP多线程类及用法实例
Dec 03 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
Python实现基于HTTP文件传输实例
2014/11/08 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python读写csv文件的方法
2019/08/13 Python
三个python爬虫项目实例代码
2019/12/28 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
幼儿如何来做好自我评价
2013/11/05 职场文书
美发活动策划书
2014/01/14 职场文书
高中课程设置方案
2014/05/28 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python
微信小程序实现录音Record功能
2021/05/09 Javascript
浅析JavaScript中的变量提升
2022/06/01 Javascript