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+mysql保存和输出文件
Oct 09 PHP
小偷PHP+Html+缓存
Nov 25 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
PHP中实现crontab代码分享
Mar 26 PHP
php文件下载处理方法分析
Apr 22 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHP实现文件上传功能实例代码
May 18 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 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实现的简单网络硬盘
2015/07/29 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python合并同类型excel表格的方法
2018/04/01 Python
python实现图片文件批量重命名
2020/03/23 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
python实现邮件发送功能
2019/08/10 Python
Python FFT合成波形的实例
2019/12/04 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
初中学生操行评语
2014/12/26 职场文书
护士年终个人总结
2015/02/13 职场文书
python使用glob检索文件的操作
2021/05/20 Python
浅谈JS的原型和原型链
2021/06/04 Javascript
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL