Laravel怎么导出Excel文件_Laravel Excel插件使用教程
发布时间 - 2025-12-04 00:00:00 点击率:次最常用工具是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 文件,最常用且功能强大的工具是 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 文件。如果没有此目录,请先创建。
编辑导出类,实现数据导出逻辑:
get();
}
public function headings(): array
{
return [
'ID',
'姓名',
'邮箱',
'注册时间'
];
}
}
说明:
- FromCollection:表示从 Eloquent 集合导出数据。
- WithHeadings:添加表头。
在控制器中调用导出
创建一个控制器方法来触发导出:
然后在路由中注册:
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 模型能快速实现数据导出功能。按照上述步骤操作,你就能在项目中轻松实现导出功能了。
# php
# excel
# laravel
# composer
# cad
# app
# 工具
# office
# csv
# require
# auto
# 接口
# 事件
# 最常用
# 的是
# 旧版本
# 如果你
# 注册时间
# 你就
# 会在
# 你还
# 它是
# 能在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
昵图网官网入口 昵图网素材平台官方入口
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Android使用GridView实现日历的简单功能
微信小程序 scroll-view组件实现列表页实例代码
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何实现文件上传和存储?(本地与S3配置)
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
网站页面设计需要考虑到这些问题
高防服务器租用如何选择配置与防御等级?
BootStrap整体框架之基础布局组件
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
如何在腾讯云服务器快速搭建个人网站?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
高防服务器如何保障网站安全无虞?
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
如何在云指建站中生成FTP站点?
如何在阿里云虚拟主机上快速搭建个人网站?
三星、SK海力士获美批准:可向中国出口芯片制造设备
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Android 常见的图片加载框架详细介绍
在线教育网站制作平台,山西立德教育官网?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何快速搭建高效香港服务器网站?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何在服务器上三步完成建站并提升流量?
html5的keygen标签为什么废弃_替代方案说明【解答】
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel如何创建自定义Artisan命令?(代码示例)
详解Android图表 MPAndroidChart折线图
JavaScript如何实现音频处理_Web Audio API如何工作?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在服务器上配置二级域名建站?
Python自动化办公教程_ExcelWordPDF批量处理案例
,在苏州找工作,上哪个网站比较好?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何选择PHP开源工具快速搭建网站?
*服务器网站为何频现安全漏洞?
Android实现代码画虚线边框背景效果
Laravel Docker环境搭建教程_Laravel Sail使用指南
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】


Collection, WithHeadings, ShouldAutoSize
{
// ...
}