首页 > php框架 > Laravel > 正文

Laravel怎么导出Excel文件_Laravel Excel插件使用教程

冰火之心
发布: 2025-12-04 09:14:36
原创
167人浏览过
最常用工具是Maatwebsite/Laravel-Excel;基于PhpSpreadsheet,支持导入导出Excel/CSV;安装命令为composer require maatwebsite/excel;Laravel 8+自动注册服务提供者和门面;旧版本需手动在config/app.php中添加ServiceProvider和Facade;通过php artisan make:export UsersExport --model=User生成导出类;导出类位于app/Exports目录。

laravel怎么导出excel文件_laravel excel插件使用教程

在 Laravel 项目中导出 Excel 文件,最常用且功能强大的工具Maatwebsite/Laravel-Excel 插件。它是基于 PHPOffice 的 PhpSpreadsheet 开发的,支持导入、导出 Excel 和 CSV 文件,使用简单,扩展性强。

安装 Laravel Excel 插件

在 Laravel 项目根目录下运行以下命令安装:

composer require maatwebsite/excel
登录后复制

如果你使用的是 Laravel 8+ 且版本为 Laravel Excel 3.1+,无需手动注册服务提供者和门面,因为 Composer 安装后会自动发现(Auto-discovery)。

如果是旧版本,需手动添加:

  • config/app.php 中添加服务提供者:
'providers' => [
    Maatwebsite\Excel\ExcelServiceProvider::class,
]
登录后复制
  • 添加门面:
'aliases' => [
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
登录后复制

创建导出类

使用 Artisan 命令生成一个导出类:

php artisan make:export UsersExport --model=User
登录后复制

该命令会在 app/Exports 目录下生成 UsersExport.php 文件。如果没有此目录,请先创建。

编辑导出类,实现数据导出逻辑:

<?php

namespace App\Exports;

use App\Models\User; // 注意模型命名空间
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;

class UsersExport implements FromCollection, WithHeadings
{
    public function collection()
    {
        return User::select('id', 'name', 'email', 'created_at')->get();
    }

    public function headings(): array
    {
        return [
            'ID',
            '姓名',
            '邮箱',
            '注册时间'
        ];
    }
}
登录后复制

说明:

DubbingX智声云配
DubbingX智声云配

多情绪免费克隆AI音频工具

DubbingX智声云配 975
查看详情 DubbingX智声云配
  • FromCollection:表示从 Eloquent 集合导出数据。
  • WithHeadings:添加表头。

在控制器中调用导出

创建一个控制器方法来触发导出:

<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function export()
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}
登录后复制

然后在路由中注册:

Route::get('/export-users', [UserController::class, 'export']);
登录后复制

访问 /export-users 即可下载 users.xlsx 文件。

支持格式与自定义文件名

默认导出为 .xlsx 格式,也支持其他格式:

  • Excel::download($export, 'file.csv') → CSV
  • Excel::download($export, 'file.xls') → XLS
  • Excel::download($export, 'file.xslx', \Maatwebsite\Excel\Excel::XLSX) → 显式指定格式

高级功能(可选)

你还可以实现更多接口来自定义导出行为:

  • ShouldAutoSize:自动调整列宽。
  • WithMapping:对每行数据进行映射处理。
  • WithEvents:监听导出事件,如设置标题样式等。

例如添加自动列宽:

class UsersExport implements FromCollection, WithHeadings, ShouldAutoSize
{
    // ...
}
登录后复制

基本上就这些。Laravel Excel 插件让导出 Excel 变得非常简单,配合 Eloquent 模型能快速实现数据导出功能。按照上述步骤操作,你就能在项目中轻松实现导出功能了。

以上就是Laravel怎么导出Excel文件_Laravel Excel插件使用教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号