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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
php模板函数 正则实现代码
Oct 15 PHP
CI框架Session.php源码分析
Nov 03 PHP
PHP面向对象精要总结
Nov 07 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
php上传图片类及用法示例
May 11 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP实现百度人脸识别
May 06 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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 中执行系统外部命令
2006/10/09 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
php实现等比例压缩图片
2018/07/26 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
微信小程序日历效果
2018/12/29 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
Python struct模块解析
2014/06/12 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
python实现随机梯度下降法
2020/03/24 Python
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
简单的辞职信范文
2014/01/18 职场文书
大学军训感想
2014/02/12 职场文书
秦兵马俑导游词
2015/02/02 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
vue+springboot实现登录验证码
2021/05/27 Vue.js
Javascript设计模式之原型模式详细
2021/10/05 Javascript