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个人网站架设连环讲(四)
Oct 09 PHP
用header 发送cookie的php代码
Mar 16 PHP
用PHP伪造referer突破网盘禁止外连的代码
Jun 15 PHP
PHP注释实例技巧
Oct 03 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
PHP-FPM的配置与优化讲解
Mar 15 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 PHP
Yii 实现数据加密和解密
Mar 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蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP中文编码小技巧
2014/12/25 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python卸载模块的方法汇总
2016/06/07 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python实现简单飞行棋
2020/02/06 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python如何运行js语句
2020/09/09 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
业务经理岗位职责
2013/11/11 职场文书
七一党建活动方案
2014/01/28 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
十八大观后感
2015/06/12 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript