1.Laravel Excel

Laravel Excel 是一款基于PHPExcel开发的Laravel框架专用的Excel/CSV 文件导入导出功能的扩展包,用起来的非常方便。
它的Github地址是:https://github.com/Maatwebsite/Laravel-Excel
当然了,你也可以使用PHPExcel,但是请注意,PHPExcel官方团队已经停止维护了,现在官方团队开发维护的是它的升级版PHPExcel扩展包,叫做:PhpSpreadsheet
我们今天主要介绍(因为我前天项目中用到了导出,最后选择了Laravel Exxcel☺):Laravel Excel

安装

1). 使用 Composer 安装该扩展包  php7.1以上用3.1.0版本:

  1. composer require "maatwebsite/excel:~3.1.0"

2).
安装完成后,修改 config/app.php 在 providers 数组内追加如下内容

[html] view plain copy
  1. 'providers' => [
  2. ...
  3. Maatwebsite\Excel\ExcelServiceProvider::class,
  4. ],

3).
同时在 aliases 数组内追加如下内容:

[html] view plain copy
  1. 'aliases' => [
  2. ...
  3. 'Excel' => Maatwebsite\Excel\Facades\Excel::class,
  4. ]

4).
接下来运行以下命令生成此扩展包的配置文件 config/excel.php:

[html] view plain copy

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

5.创建导出类

php artisan make:export ExcelExport

<?php

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;
class ExcelExport implements FromCollection, WithHeadings
{
use Exportable; private $data;
private $headings; //数据注入
public function __construct($data, $headings)
{
$this->data = $data;
$this->headings = $headings;
} //实现FromCollection接口
public function collection()
{
return collect($this->data);
} //实现WithHeadings接口
public function headings(): array
{
return $this->headings;
}
}

6.控制器里

public function export(){
$data = [
[
'name' => 'cheng',
'email' => 'cheng222'
],
[
'name' => 'cheng',
'email' => 'cheng111'
],
]; $headings = [
'name',
'email'
];
return Excel::download(new ExcelExport($data, $headings), 'users.csv'); }

导入文件

1.创建导入类

php artisan make:import ExcelImport

这里向和我一样不明白的小白说下,关于导入导出excel 文档里主要设计到三种 : 模型 model  , 集合 collection , 数组 Array

此外还有 implements ToArray 和 implements ToCollection 两个方法,

<?php

namespace App\Imports;

use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel; class UsersImport implements ToModel
{
/**
* @param array $row
*
* @return User|null
*/
public function model(array $row)
{
return new User([
'name' => $row[],
'email' => $row[],
'password' => Hash::make($row[]),
]);
}
}
<?php

namespace App\Imports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToArray; class UsersImport implements ToArray
{
public function Array(Array $tables)
{
return $tables;
} }

控制器的两种用法

$array = Excel::toArray(new UsersImport, 'users.xlsx');

$collection = Excel::toCollection(new UsersImport, 'users.xlsx');

如何在 Laravel 项目中处理 Excel 文件的更多相关文章

  1. [Laravel-Swagger]如何在 Laravel 项目中使用 Swagger

    如何在 Laravel 项目中使用 Swagger http://swagger.io/getting-started/ 安装依赖 swagger-php composer require zirco ...

  2. C#项目中操作Excel文件——使用NPOI库

    转载自:http://blog.csdn.net/dcrmg/article/details/52356236# 感谢-牧野- 实际C#项目中经常会涉及到需要对本地Excel文件进行操作,特别是一些包 ...

  3. Vue项目中导入excel文件读取成js数组

    1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...

  4. vue项目中导出Excel文件功能的前端代码实现

    在项目中遇到了两种不同情况, 1.get请求导出文件,实现起来相对简单 // 导出数据 exportData() { window.location.href = `/oes-content-mana ...

  5. #iPhone6与iPhone6Plus适配#如何在Xcode 6中创建 PCH 文件

    本文永久链接http://www.cnblogs.com/ChenYilong/p/4008086.html   新建文件 ⌘+N选择 iOS/Mac -> Other -> PCH Fi ...

  6. 如何在cocos2d项目中enable ARC

    如何在cocos2d项目中enable ARC 基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. cocos2d是ios app开发中 ...

  7. 如何在NodeJS项目中优雅的使用ES6

    如何在NodeJS项目中优雅的使用ES6 NodeJs最近的版本都开始支持ES6(ES2015)的新特性了,设置已经支持了async/await这样的更高级的特性.只是在使用的时候需要在node后面加 ...

  8. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  9. 如何在mvc项目中使用apiController

    文章地址:How do you route from an MVC project to an MVC ApiController in another project? 文章地址:How to Us ...

随机推荐

  1. 运行servlet跳转页面变成了下载界面,或者中文乱码

    1.是这个地方的问题,敲错了Setvlet不能识别HTML文件,所以变成了下载.2.这个也是防止中文乱码 //设置响应内容类型response.setContentType("text/ht ...

  2. 为服务部署 Jekins的使用

    docker pull jenkinsci/jenkins docker run -d -p 8080:8080 -v E:/docker/jenkins:/var/jenkins_home --na ...

  3. (十八)JDBC获取存储过程和主键

    目录 获取数据库自动生成的主键: JDBC调用存储过程 获取数据库自动生成的主键: update 更新操作以后,如果需要用到结果集,可以通过 PreparedStatement.getResultSe ...

  4. loj 10117 简单题

    #include<iostream> #include<cstdio> #include<cctype> using namespace std; inline i ...

  5. LG P2285 [模板]负环(spfa判负环)

    题目描述 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入格式 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个顶点,M条边 接下来M行,每 ...

  6. PostgreSQL练习

    学生表 Studentcreate table Student(Sid varchar(6), Sname varchar(10), Sage datetime, Ssex varchar(10)); ...

  7. 搭建 python 3.5+pycharm 2017.1.3+django 1.12.0 首次 将sqlite3 迁移到mysql

  8. 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title

    [第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...

  9. visual studio 用 vs code 的 hot key

    记得 2 年多前开始用 vs code, 一开始非常不适应它的 hot key 一心想把 vs code 的 hot key 全改成 visual studio 的,但一直没有找到比较方便的办法 (总 ...

  10. MongoDB实战读书笔记(二):面向文档的数据

    1 schema设计原则 1.1 关系型数据库的三大设计范式 第一范式(1NF)无重复的列 第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ] 第三范式(3NF)属性不依赖于其它非主属性 ...