Laravel Excel安装及最简单使用

官网:https://docs.laravel-excel.com

1、安装

1.1、安装要求:

copyPHP: ^7.0

Laravel: ^5.5

PhpSpreadsheet: ^1.6

PHP扩展已php_zip启用

PHP扩展已php_xml启用

PHP扩展已php_gd2启用

1.2、安装

copy//安装
composer require maatwebsite/excel

在laravel项目config/app.php中

copy//providers元素添加
Maatwebsite\Excel\ExcelServiceProvider::class,

//aliases元素添加
'Excel' => Maatwebsite\Excel\Facades\Excel::class,

发布配置

copyphp artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
//将自动建立一个新配置文件config/excel.php

2、导出

2.1、新建导出类

copyphp artisan make:export TestExport
//执行后会在新建app/Export/TestExport.php文件

2.2、导出类实现FromArray接口

新建的export,默认实现的接口是FromCollection,更改为FromArray,实现array方法

FromCollection以后有机会再讲

一般导出会传个id,到数据库查数据,例子传了个id但没到数据库查询

copyuse Maatwebsite\Excel\Concerns\FromArray;

class TestExport implements FromArray
{
    private $id;
    public function __construct($id)
    {
        $this->id = $id;
    }
  
    public function array(): array
    {
        $data = [[$this->id,$this->id,$this->id],[1,2,3],[4,5,6],[7,8,9]];//测试数据
        return $data;
    }
}

2.3、控制器中导出

copyuse Maatwebsite\Excel\Facades\Excel;

class TestController extends Controller
{
    public function export($id)
    {
        return Excel::download(new TestExport($id),'test.xlsx');
    }
}

2.4、定义路由

copyRoute::get('/test/export/id/{id}', 'TestController@export');

2.5、结果

访问: xx.com/test/export/id/1 即可导出

3、导入

3.1、新建导入类

copyphp artisan make:import TestImport
//执行后会在新建app/Export/TestExport.php文件

3.2、导入类实现FromArray接口

新建的import,默认实现的接口是ToCollection,更改为ToArray,实现array方法

ToCollection以后有机会再讲

copyuse Maatwebsite\Excel\Concerns\ToArray;

class TestImport implements ToArray
{
    public function array(array $array)
    {
        //处理导入数据$array
        //...
        return $array;
    }
}

3.3、控制器导入

将上面导出的test.xlsx,放到/public/file目录下

copypublic function import()
{
     $array = Excel::toArray(new TestImport, public_path('/file/test.xlsx'));
     dd($array);//简单的打印一下
}

3.4、定义路由

copyRoute::get('/test/import', 'TestController@import');

3.5、结果

访问: xx.com/test/import 即可导出,

这里导入非手动选择,而是指定了文件路径/public/file/test.xlsx文件

结果:

posted @   pine007  阅读(11118)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

目录导航