Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
1、简介
本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍吧。
Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和 导出 。
该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel。
本地下载地址:http://xiazai.jb51.net/201710/yuanma/Laravel-Excel-2.1(jb51.net).rar
2、安装&配置
使用Composer安装依赖
本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出。
首先进入Laravel项目根目录下使用Composer安装依赖:
|
1
|
composer require maatwebsite/excel=~2.0 |
安装后的设置
在 config/app.php 中注册服务提供者到 providers 数组:
|
1
|
Maatwebsite\Excel\ExcelServiceProvider::class, |
同样在 config/app.php 中注册门面到 aliases 数组:
|
1
|
'Excel' => Maatwebsite\Excel\Facades\Excel::class, |
如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:
|
1
|
php artisan vendor:publish |
执行成功后会在 config 目录下生成一个配置文件 excel.php 。
3、导出Excel文件
为了演示Laravel Excel相关功能,我们为本测试创建一个干净的控制器ExcelController.php:
|
1
|
php artisan make:controller ExcelController --plain |
然后在routes.php中定义相关路由:
|
1
2
|
Route::get('excel/export','ExcelController@export');Route::get('excel/import','ExcelController@import'); |
接下来我们先在ExcelController.php中定义export方法实现导出功能:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?phpnamespace 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'); }} |

也有一个方法是直接从数组导入
|
1
|
$sheet->fromArray($anyArray); |
如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx即可。
如果还要将该Excel文件保存到服务器上,可以使用store方法:
|
1
2
3
4
5
|
Excel::create('学生成绩',function($excel) use ($cellData){ $excel->sheet('score', function($sheet) use ($cellData){ $sheet->rows($cellData); });})->store('xls')->export('xls'); |
文件默认保存到storage/exports目录下,如果出现文件名中文乱码,将上述代码文件名做如下修改即可:
|
1
|
iconv('UTF-8', 'GBK', '学生成绩') |
4、导入Excel文件
我们将刚才保存到服务器上的Excel文件导入进来,导入很简单,使用Excel门面上的load方法即可:
|
1
2
3
4
5
6
7
8
|
//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 Excel导入文件
当然,Laravel Excel还有很多其它功能,比如将Blade视图导出为Excel或CSV,以及对导入/导出更加细粒度的控制,具体可参考其官方文档:http://www.maatwebsite.nl/laravel-excel/docs
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解的更多相关文章
- java实现excel的导入导出(poi详解)[转]
java实现excel的导入导出(poi详解) 博客分类: java技术 excel导出poijava 经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个 ...
- CSV文件导入导出MySQL
使用SQLyog 工具导入文件数据到MySQL: Excel文件导入导出: 需要驱动:Microsoft Office 2007驱动 导入需要注意的问题:1.Excel里数值列,默认导入会变成浮点型. ...
- MySql csv文件导入导出
一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该 ...
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出 ...
- 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- MongoDB csv文件导入导出
1.导出到csv文件: 2.从csv导入: 数据经过csv导出导入,有一个非常隐蔽的问题,编写代码时需要注意: 先导入一条数据: 其中Price是double类型: 然后我把该条记录导出到Demo.c ...
- 【转】Java操作CSV文件导入导出
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- java实现excel的导入导出(poi详解)
经过两天的研究,现在对excel导出有点心得了.我们使用的excel导出的jar包是poi这个阿帕奇公司的一个项目,后来被扩充了.是比较好用的excel导出工具. 下面来认识一下这个它吧. 我们知道要 ...
随机推荐
- NOIP 货车运输
题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过 ...
- 用idea编译器写第一个Java程序——步骤
- python 低版本一段扫描代码
个人在做Linux渗透测试往内网跨的时候,通常我碰到的Linux环境都会是如下集中情况 1: DMZ,严格的DMZ,根本跨不到内网里去.这种最恶心了. 2:WEB SERVER,严格区分,工作机和工作 ...
- JavaWeb -- Struts 数据传输:OGNL和类型转换
1. 数据传输:OGNL和类型转换 OGNL和struts2 OGNL:Object-Graph Navigation Language. OGNL是集成进struts框架中比较强大的技术有助于数据传 ...
- scala学习手记12 - 字段、方法和构造函数
在上一节创建了一个scala类,如果没有更多的方法,scala类的定义还可以更简单一些,看一下下面这个CreditCard类的定义: class CreditCard(val number: Int, ...
- 谈谈你对Glide和Picasso他们的对比的优缺点
1.Picasso和Glide的withi后面的参数不同 Picasso.with(这里只能传入上下文) . Glide.with,后面可以传入上下文,activity实例,FragmentA ...
- js 验证 -身份证等
js验证身份证: function isIdCard(idCard) { var num = idCard.toLowerCase().match(/\w/g); if (idCard.match(/ ...
- DOM冒泡事件
一.注册事件的三种方式 1 on的方式 语法: 事件源.on+事件名称 = 事件处理程序 例如: btn.onclick = function(){} 细节: 只能注册一个事件处理函数 兼容: 所有主 ...
- 在js中,ajax放在for中,ajax获取得到的变量有误
先看代码 for(var i=0;i<tds.length;i++){ mui.ajax(url+'api/client/gifts/isSigned', {data :{ sqId:" ...
- angular服务
angular创建服务的五种方式: factory() factory()方法是创建和配置服务的最快捷方式.factory()函数可以接受两个参数. name(字符串)需要注册的服务名. ge ...