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 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
香港服务器选型指南:免备案配置与高效建站方案解析
微信小程序 闭包写法详细介绍
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
如何在Windows 2008云服务器安全搭建网站?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
图册素材网站设计制作软件,图册的导出方式有几种?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
常州企业网站制作公司,全国继续教育网怎么登录?
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel如何创建自定义中间件?(Middleware代码示例)
详解jQuery停止动画——stop()方法的使用
Laravel如何使用withoutEvents方法临时禁用模型事件
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
LinuxShell函数封装方法_脚本复用设计思路【教程】
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel如何处理文件下载请求?(Response示例)
网站建设要注意的标准 促进网站用户好感度!
如何在云指建站中生成FTP站点?
如何快速搭建虚拟主机网站?新手必看指南
如何在腾讯云免费申请建站?
如何正确选择百度移动适配建站域名?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何在腾讯云服务器快速搭建个人网站?
如何用VPS主机快速搭建个人网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Firefox Developer Edition开发者版本入口
如何在建站主机中优化服务器配置?
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何获取免费开源的自助建站系统源码?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何用狗爹虚拟主机快速搭建网站?
如何在宝塔面板中修改默认建站目录?
在线教育网站制作平台,山西立德教育官网?
如何在自有机房高效搭建专业网站?
制作旅游网站html,怎样注册旅游网站?
如何获取PHP WAP自助建站系统源码?
如何快速查询网站的真实建站时间?
iOS UIView常见属性方法小结
如何撰写建站申请书?关键要点有哪些?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
太平洋网站制作公司,网络用语太平洋是什么意思?
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】


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