在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

Posted on 2015年11月17日 by  学院君   注意版本2.1

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.1

安装后的设置

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方法实现导出功能:

<?phpnamespace 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,页面显示如下:

laravel5 Excel Excel/CSV 文件导入导出功能相关推荐

  1. excel对csv文件导入导出

    导入csv文件 Private Sub Inport_Renkei_CSV_Click_Click()Dim rowIndex As Integer, item As IntegerDim fileN ...

  2. 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能

    一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...

  3. Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)

    Laravel Excel实现Excel/CSV文件导入导出(合并单元格,设置单元格样式) 这篇文章主要给大家介绍了关于在Laravel中如何使用Laravel Excel实现Excel/CSV文件导 ...

  4. php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解

    @H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...

  5. easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能

    Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写. 第一步引入Easypoi依赖 cn.afterturn easypoi-spring-boot-st ...

  6. csv文件导入导出到mysql

    为什么80%的码农都做不了架构师?>>>    1. 从mysql中导出csv文件 echo "select * from table into outfile '/tmp ...

  7. mysql enclosed by_MySql csv文件导入导出

    一.导出到csv(本地导出) 通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/te ...

  8. postman测试Excel文件导入导出功能

    导入Excel核心代码 @ApiOperation("导入Excel")@PostMapping("/importExcel")public ActionRes ...

  9. php inputcsv,php excel格式(csv)数据导入导出(示例)

    需要把大量数据导入数据库中,比如考试成绩.电话簿等一般都是存放在excel中的数据,可以考虑把excel导出成csv文件. 然后,通过以下程序即可批量导入数据到数据库中,上传csv并导入到数据库中,测 ...

最新文章

  1. 获取this_小程序获取微信运动步数并集成echarts报表显示
  2. rails 常用方法
  3. 区块链BaaS云服务(28)TOP Network 之P2P 网络
  4. 音乐播放类应用后台播放耗电评测报告
  5. (五)Unity插件生成
  6. python解约瑟夫环问题
  7. Base 6 FAQ v8
  8. DTCoreText
  9. android面试 源码,Android面试题-onCreate源码都没看过,怎好意思说自己做android-Go语言中文社区...
  10. 配置×××服务器使用L2TP/IPSEC协议
  11. paip.提升用户体验-----可访问性大原则及一些方法
  12. Qt 70行代码实现控件任意拆分 选中控件水平垂直拆分 窗口分割
  13. 使用脚本下载.ts文件并合并
  14. 人工智能领域的产物认知技术,最重要的是哪几个
  15. C#把excel数据转换成DataTable
  16. 我想推出这么一种应用(现代诗歌)
  17. Docker buil提示https://registry-1.docker.io/v2/: read tcp 10.221->:443: read: connection reset by peer
  18. 屏幕截图工具 php调用,PicPick 全屏幕截图工具
  19. 读取远程服务器上文件内容,读取远程服务器上的文件
  20. 【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)

热门文章

  1. 计算机网络实现技术,系统实现技术 计算机网络ppt课件.ppt
  2. MySQL计算机机房管理系统_机房管理系统的设计与实现(JSP,MySQL)(含录像)
  3. 拯救者 R7000 触摸板失灵 | Driver Booster 更新驱动导致触摸板失灵
  4. grub rescue修复引导
  5. C++实现无头结点单链表
  6. 个体户和公司的区别?
  7. 极其强大的数据统计软件 Stata 安装教程
  8. java写日历记事本系统_用Java实现日历记事本源代码2660【新版】
  9. MATLAB批量分割txt数据
  10. android 动画循环移动图片