【laravel】【转发】laravel 导入导出excel文档
1、简介
Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和 导出 。
该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Excel 。
本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出。
2、安装&配置
使用Composer安装依赖
首先在Laravel项目根目录下使用Composer安装依赖:
composer require maatwebsite/excel ~2.0.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文件导出功能 By Laravel学院
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');
}
}
我们在浏览器中访问 http://laravel.app:8000/excel/export ,会导出一个名为 学生成绩.xls 的Excel文件:

如果你要导出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 Excel还有很多其它功能,比如将Blade视图导出为Excel或CSV,以及对导入/导出更加细粒度的控制,具体可参考其官方文档: http://www.maatwebsite.nl/laravel-excel/docs
【laravel】【转发】laravel 导入导出excel文档的更多相关文章
- struts2中利用POI导出Excel文档并下载
1.项目组负责人让我实现这个接口,因为以前做过类似的,中间并没有遇到什么太困难的事情.其他不说,先上代码: package com.tydic.eshop.action.feedback; impor ...
- 转:ASP.NET MVC 将IList<T>导出Excel文档的泛型类
/// <summary> /// 提供将泛型集合数据导出Excel文档. /// </summary> /// <typeparam name="T" ...
- C# NPOI 导入与导出Excel文档 兼容xlsx, xls
之前写了个小程序,导出一些数据成Excel,程序使用的是Microsoft.Office.Interop.Excel类来操作Excel. 在本机测试的时候都好好的,但是将生成文件放到其他电脑上却怎样也 ...
- [转]C# NPOI 导入与导出Excel文档 兼容xlsx, xls
本文转自:https://www.cnblogs.com/lazyneal/p/6148912.html 参考:http://www.cnblogs.com/restran/p/3889479.htm ...
- C# NPOI 导入与导出Excel文档 兼容xlsx, xls(xf13中已经引用了xlsx的npoi)
这里使用的NPOI版本为: 2.1.3.1 官方下载地址: http://npoi.codeplex.com/releases 版本内包含.Net 2.0 与.Net 4.0 .Net 4.0中包含文 ...
- Java之Poi导出Excel文档
一.Poi简介 在后台管理系统中,我们经常要做的导出操作,通常导出为Excel文档的形式,而Poi则提供了这种需要的支持. 二.Workbook/HSSFWorkbook/XSSFWorkbook 1 ...
- asp.net mvc4使用NPOI 数据处理之快速导出Excel文档
一.背景 在之前做的小项目里有一需求是:要求将一活动录入的数据进行统计,并以excel表格形式导出来,并且对表格格式要求并不高. 二.问题分析 鉴于用户只要求最终将数据库中的数据导出excel,对于格 ...
- Asp.net中导出Excel文档(Gridview)
主要思路,通过GridView来导出文档. 新建一个Aspx页面,页面创建GridView控件,后台绑定好数据源.然后load中直接打印即可导出 前台的GridView <asp:GridVie ...
- POI导出Excel文档通用工具方法
import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; imp ...
随机推荐
- 关于JS点击button之灵活替换改变内容方法
<p id="demo">JavaScript 能改变 HTML 元素的内容.</p> <script>function myFunction( ...
- HDU-2063-过山车(最大匹配)
链接:https://vjudge.net/problem/HDU-2063 题意: RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且 ...
- JavaScript 中Array数组的几个内置函数
本文章内容均参考<JavaScript高级程序设计第三版> 今天在看JavaScript书籍的时候,看到之前没有了解过的JavaScript中Array的几个内置函数对象,为了之后再开发工 ...
- Zepto核心模块源代码分析
一.Zepto核心模块架构 Zepto核心模块架构图 该图展示了Zepto核心模块架构代码的组织方式.主要分为私有变量.函数和暴露给用户的所有api. Zepto核心模块架构代码 该图展示了Zepto ...
- 死磕 java原子类之终结篇(面试题)
概览 原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换. 原子操作可以是一个步骤,也可以是多个操作步骤,但是其顺序不可以被打乱,也不可以被切割 ...
- echarts使用中的那些事儿(二)
然而第二天的事情你怎么能猜到客户的心思呢: 客户:右边的是啥? 偶:可放大缩小查看各个时期的数据. 客户:把它去掉吧,全部直观显示. 偶:哦,不过数据过多的话会导致页面过长的. 客户:只有你知道这个可 ...
- html页面和jsp页面的区别
html页面: html页面是静态页面,可以使用html+css+js实现页面的各种效果,单纯使用html布局出来的页面是设定好的页面,可以使用本地浏览器打开.同时搭配使用ajax实现数据交互效果的页 ...
- 数据结构-List接口-LinkedList类-Set接口-HashSet类-Collection总结
一.数据结构:4种--<需补充> 1.堆栈结构: 特点:LIFO(后进先出);栈的入口/出口都在顶端位置;压栈就是存元素/弹栈就是取元素; 代表类:Stack; 其 ...
- 想系统化快速学习人工智能?上Azure School就够了!
要说目前最热门的技术,非人工智能莫属了,让计算机程序能够看懂.听懂.读懂.理解我们的世界!想想就激动!! 上至高大上的个人数字化助理,下至P图软件,各种应用都开始增加AI相关的功能,试问又有哪个技术爱 ...
- Java异常之RuntimeException
人生不如意十有八九.在打Core Java里面的例子的时候总是一遍就过,但是实际上只要是自己想着动手去打造自己想要的东西,异常的状况也是十有八九的. 在Java中会使用异常处理的错误捕获机制处理这些异 ...