0

0

laravel怎么导出CSV或Excel文件_laravel CSV/Excel文件导出方法

穿越時空

穿越時空

发布时间:2025-10-26 09:56:02

|

1017人浏览过

|

来源于php中文网

原创

Laravel 提供多种方式导出数据,推荐使用 Laravel-Excel 扩展包实现 Excel 文件导出,支持样式定制与大数据优化;也可手动构建 CSV 响应流,结合查询构造器的 cursor 或 chunk 方法分批处理,避免内存溢出,适用于报表生成与数据备份场景。

laravel怎么导出csv或excel文件_laravel csv/excel文件导出方法

如果您需要将数据库中的数据以结构化文件形式提供给用户下载,例如生成报表或备份数据,Laravel 提供了多种方式来实现 CSV 或 Excel 文件的导出功能。以下是几种常见的实现方法:

本文运行环境:MacBook Pro,macOS Sonoma

一、使用 Laravel-Excel 扩展包导出 Excel 文件

Laravel-Excel 是基于 PhpSpreadsheet 的强大扩展包,能够简化 Excel 文件的创建和导出过程,支持 .xlsx 和 .xls 格式。

1、在项目根目录下通过 Composer 安装 Laravel-Excel 包:composer require maatwebsite/excel

2、发布配置文件以便自定义设置:php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

3、创建一个导出类,例如用于导出用户数据:php artisan make:export UsersExport --model=User

4、在生成的 UsersExport 类中实现 FromCollection 接口,并在 collection() 方法中返回要导出的数据集合。

5、在控制器中调用该导出类,使用 Excel::download() 方法触发文件下载:return Excel::download(new UsersExport, 'users.xlsx');

二、手动构建 CSV 文件响应

对于简单的 CSV 导出需求,可以直接使用 PHP 的 fputcsv 函数结合 Laravel 的响应流机制生成文件,无需额外依赖。

1、在控制器中定义一个导出方法,设置正确的 HTTP 响应头以指示浏览器下载文件。

2、使用 response()->stream() 返回一个流式响应,避免内存溢出处理大量数据。

3、在闭包内部打开输出句柄,写入 UTF-8 BOM(防止中文乱码)和表头字段。

4、从数据库获取数据并逐行写入 CSV,示例代码如下:fputcsv($handle, ['ID', 'Name', 'Email']);

魔珐星云
魔珐星云

无需昂贵GPU,一键解锁超写实/二次元等多风格3D数字人,跨端适配千万级并发的具身智能平台。

下载

5、每处理一批数据后清空输出缓冲区,保持低内存占用。

三、结合查询构造器优化大数据量导出

当导出记录数较大时,应避免一次性加载所有数据到内存,可通过游标或分块查询提升性能。

1、使用 cursor() 方法遍历 Eloquent 模型,它会利用生成器逐条读取数据。

2、在 stream 下载闭包中循环 cursor 结果,并将每条记录格式化后写入 CSV 句柄。

3、对于更复杂的查询场景,可使用 chunk() 方法按指定数量分批提取数据。

4、在每个数据块处理完成后调用 GC 清理内存:gc_collect_cycles();

四、使用 Laravel-Excel 自定义导出样式

除了基本数据导出,Laravel-Excel 还支持对 Excel 文件进行样式定制,如设置列宽、字体、背景色等。

1、在导出类中引入 WithStyles、WithColumnWidths 等接口,并实现对应方法。

2、通过 styles() 方法返回一个数组定义行或列的样式规则。

3、使用 WithHeadingRow 接口确保第一行为表头。

4、若需冻结窗格,可在 registerEvents 中使用 AfterSheet 事件调用 setFreezePane()。

5、最终仍通过 Excel::download() 启动下载流程,样式将自动应用。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2534

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1606

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1499

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1416

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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