SpartnerNL

SpartnerNL / Laravel-Excel

#5
12,6651,974+1 todayPHP

🚀 Laravel 中超强力的 Excel 导出与导入工具

Laravel Excel 是一个基于 PhpSpreadsheet 的 Laravel 扩展包,专注于简化 Excel 和 CSV 文件的导入与导出操作。它提供了一系列高效功能:支持将 Laravel 集合直接导出为 Excel 或 CSV 文件,无需复杂配置;对于大型数据集,可自动对数据库查询进行分块处理,并支持队列导出,避免页面超时;导入方面,能够逐块读取工作表并批量插入到 Eloquent 模型,同样支持后台队列处理。此外,还允许通过 Blade 视图自定义表格布局导出为 Excel。适用于需要频繁处理电子表格的 Laravel 项目,如数据报表生成、批量数据迁移等场景,显著提升开发效率。

💡 应用场景

Laravel Excel最适合需要高效、可扩展地处理Excel/CSV导入导出,尤其是大数据量、复杂格式或后台队列场景的Laravel项目

快速导出集合

问题:需要将数据库查询结果或集合数据导出为Excel/CSV文件,但手动构建表格繁琐且易出错

方案:直接调用`Excel::download()`传入Eloquent集合或数组,一行代码即可生成下载文件

示例:`return Excel::download(new UsersExport, 'users.xlsx');` 自动将用户集合转为Excel

大数据量导出

问题:导出数十万条记录时内存溢出或超时,传统方法无法处理

方案:使用查询导出(FromQuery)配合自动分块(chunk),或队列化导出在后台异步处理

示例:导出100万条订单记录时,只需定义`FromQuery`接口,Laravel Excel自动分块写入,避免内存爆炸

复杂格式报表

问题:需要生成带合并单元格、条件格式、图表等复杂样式的报表,手动操作PhpSpreadsheet代码冗长

方案:直接在Blade视图中编写HTML表格,使用`Excel::loadView()`将视图渲染为Excel,保留布局样式

示例:用Blade模板设计销售报表,包含标题行、汇总行和条件高亮,导出后保持原样

批量导入数据

问题:用户上传的Excel文件包含大量数据,需要逐行验证并存入数据库,但逐行插入性能极差

方案:使用`WithBatchInserts`和`WithChunkReading`,自动分批读取和批量插入,支持队列化后台处理

示例:导入10万条商品数据时,每1000条一批插入,同时后台队列处理,不阻塞用户请求

📊 项目信息

语言
PHP
Stars
12,665
Forks
1,974
今日新增
+1
排名
#5
收录
语言榜
趋势日期
2026年6月2日
最后推送
2026/6/1

🏷️ 标签

PHPLaravelExcel处理数据导入导出高性能队列支持Laravel开发者后端开发者

📸 截图

Laravel-Excel screenshot 1Laravel-Excel screenshot 2Laravel-Excel screenshot 3