(文章引用来源 http://www.cnblogs.com/djwhome/p/9322112.html   有自己的补充用于记录)

(在此次项目中,本人亲自尝试,标题中文无论如何转换(GBK、gb2312、utf-8)都不能正常读取。包括.xsl 文件中存在中文也不能正常读取。所以本人放弃了.xsl中的一切中文)

在项目开发中 最常用的就是把数据导出成excel的文件报表了

然而新下的项目中啥也没有;没有excel的扩展

会报这个错误

然后你需要通过composer安装这个依赖

学习源头:https://www.jianshu.com/p/4a2457efbf91

excel官方文档:http://laravelacademy.org/post/2024.html

1,使用Composer安装依赖


在Laravel项目根目录下使用Composer安装依赖:

composer require maatwebsite/excel ~2.1

ps:一定要加上~2.1!!!因为现在已经更新到3.0版本了,如果你不加的话,会安装最新的3.0版本!等运行时候就会报错,类似下面这样的报错

Symfony\Component\Debug\Exception\FatalThrowableError(E_ERROR)Call to undefined method Maatwebsite\Excel\Excel::create(),


2,安装后,修改设置

在config/app.php中注册服务提供者到providers数组:

Maatwebsite\Excel\ExcelServiceProvider::class,


在config/app.php中注册门面到aliases数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,


3、测试Excel文件

创建一个控制器ExcelController.php:

php artisan make:controller ExcelController


然后在routes.php中定义相关路由:

Route::get('excel/export','ExcelController@export');

Route::get('excel/import','ExcelController@import');


然后实现导出、导入功能:

<?php

namespace App\Http\Controllers;

use App\Http\Requests;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use Excel;

class ExcelController extends Controller

{

public function export()

{

$cellData = [

    ['id','name','number'],
    ['10001','AAAAA','99'],
    ['10002','BBBBB','92'],
    ['10003','CCCCC','95'],
    ['10004','DDDDD','89'],
    ['10005','EEEEE','96'],

];

Excel::create('users',function($excel) use ($cellData){

$excel->sheet('score', function($sheet) use ($cellData){

$sheet->rows($cellData);

});

})->store('xls')->export('xls');

}

public function import(){

$filePath = 'storage/exports/users.xls';

Excel::load($filePath, function($reader) {

$data = $reader->all(); dd($data);

});

exit;

}

}


如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx。

store方法,将该Excel文件保存到服务器上,文件默认保存到storage/exports目录下,iconv()是为了防止文件名中文乱码。

访问 http://youdemain/excel/export

访问 http://youdemain/excel/import

laravel5.5 excel扩展包的安装和使用的更多相关文章

  1. VSCode扩展包离线安装

    下载离线包 下载地址:https://marketplace.visualstudio.com/vscode 安装离线包

  2. 如何正确使用 Composer 安装 Laravel 扩展包

    我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 composer ...

  3. laravel 安装 Laravel 扩展包

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 comp ...

  4. 正确的 Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  5. 【转】正确的 Composer 扩展包安装方法

    简单解释 composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖: composer update - 从 c ...

  6. Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  7. VirtualBox扩展包安装教程|VirtualBox扩展增强包怎么安装

    VirtualBox是一款功能强大的免费虚拟机软件,一般我们安装VirtualBox后要安装扩展增强包,VirtualBox扩展包包含USB2.0和USB3.0控制等支持功能,如果没有装,在使用过程中 ...

  8. 关于Pycharm安装扩展包的方法

    Python中第三方的库(library).模块(module),包(package)的安装方法以及ImportError: No module named 1.pip install .... 一般 ...

  9. Python及bs4、lxml、numpy模块包的安装

    http://blog.csdn.net/tiantiancsdn/article/details/51046490(转载) Python及bs4.lxml.numpy模块包的安装 Python 的安 ...

随机推荐

  1. python ----列表、字符串、元组之间转换小结

    字符串转换列表 li =list("adfadfsf") #内部使用for循环 print(li) #输出结果:['a', 'd', 'f', 'a', 'd', 'f', 's' ...

  2. Mac系统在Pycharm中切换解释器

    1. 2. 3. 4. 5.

  3. python基础----基础知识介绍

    一  编程语言的划分       编译型:将代码一次性全部编译成二进制,然后运行. 缺点:开发效率低,不能跨平台(windows与linux) 优点:执行效率高 代表语言:c语言 解释型:当程序开始运 ...

  4. python笔记10-切片(从list或字符串中取几个元素)

    name1 = 'zcl,pyzyz'names = ['zcl','py','zyz'] #切片的意思就是从list里面或者字符串里面取几个元素#切片操作对字符串也是完全适用的 # print(na ...

  5. JAVA 程序的基本语法

    首先看我们的第一个java程序: public class HelloWorld { public static void main(String[] args) { System.out.print ...

  6. linux 执行脚本1.补充命令 2.后台执行

    nohup是永久执行&是指在后台运行2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中.最后一个 ...

  7. 2019-04-15-day032-多进程介绍

    内容回顾 基于原生socket的udp协议实现将client端发送过来的消息放到字典中 字典的key是所有客户端的地址,value是一个列表 io :输入输出, 输入到内存,向内存输入 从内存中向外( ...

  8. JS的异步操作

    异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采用异步操作 4.回调函数可以理解为异步 同步:一次只能完成一个任务,如果多个任务就必须排队,先前面一个任务再执行 ...

  9. 2018年4月中旬的PTA(三)

    C高级第三次PTA作业(1) 题目6-1 输出月份英文名 1.设计思路 (1)算法(子函数) 第一步:定义字符型一级指针子函数名getmonth,形参整型n. 第二步:定义长度为12的字符数组指针mo ...

  10. License控制解决方案

    当我们写完一个软件以后一般都会牵扯到软件控制,那么控制版本的原理是什么呢?其实就是在程序中添加了一段经过自己编写算法(这个算法可以是简单的公式运算,也可以是复杂的结合硬件的绑定方式),将形成的序列号注 ...