如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗
Posted 扣钉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗相关的知识,希望对你有一定的参考价值。
"扣钉Coding,用程序猿的眼光看生活"
// 说明 //
maatwebsite/excel 是一款强大的 Excel 文件处理扩展包,能够快速完成 Excel 文件的的导出,解析等功能。
// 截图 //
// 运行 //
Demo 代码请见:
https://github.com/zhengjinghua/est-excel-demo
请参照此文档运行 Demo:
https://phphub.org/topics/1902
// 文章概览 //
安装;
基础用法;
更多功能。
接下来是详细解说。
// 安装 //
1). 使用 Composer 安装该扩展包:
composer require maatwebsite/excel
2). 安装完成后,修改 config/app.php 在 providers 数组内追加如下内容
'providers' => [
...
Maatwebsite\Excel\ExcelServiceProvider::class,
],
3). 同时在 aliases 数组内追加如下内容:
'aliases' => [
...
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
4). 接下来运行以下命令生成此扩展包的配置文件 config/excel.php:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
默认配置基本能通用大部分的项目开发需求,因此本文不对此配置文件做过多叙述,想深入研究的童鞋可以阅读官方文档。
到此, 此拓展包即安装成功。
基础用法:
// 解析 Excel 文件 //
$excel_data = Excel::load($excel_file_path, function($reader) {
$excel_data = Excel::load($excel_file_path)->get()->toArray();
// 直接打印内容即可看到效果
echo 'job.xlsx 表格内容为:';
dd($excel_data);
});
// 将数据导成 Excel 文件 //
// 导出 Excel 并能直接在浏览器下载
# $export_file_name = 要生成的文件名
Excel::create($export_file_name, function ($excel) {
$excel->sheet('Sheetname', function ($sheet) {
$sheet->appendRow(['data 1', 'data 2']);
$sheet->appendRow(['data 3', 'data 4']);
$sheet->appendRow(['data 5', 'data 6']);
});
})->download('xls');
// 导出 Excel 并存储到指定目录
Excel::create($export_file_name, function ($excel) {
$excel->sheet('Sheetname', function ($sheet) {
$sheet->appendRow(['data 1', 'data 2']);
$sheet->appendRow(['data 3', 'data 4']);
$sheet->appendRow(['data 5', 'data 6']);
});
})->store('xls', $object_path);
导出的 Excel 内容见下图:
// 更多功能 //
除了上述的解析/导出功能外,此扩展包还支持:
解析指定表格里的指定列;
格式化日期;
添加计算公式;
缓存表格;
批量解析指定目录里的所有 Excel 文件;
可以做格式转换, 如将 csv 转换成 xls, 反之亦可;
可以将 Excel 结合 blade 模板引擎进行渲染。
这些更多的用例请移步官方文档参考。
以上,就是今天的实栗分享:如何在 Laravel 项目中处理 Excel 文件。欢迎同我们交流学习,一起进步。
父亲节快乐 : )
- the end -
责任编辑/Wenda
往期实栗文章:
【】
【】
】
【】
【】
“关注扣钉Coding,用程序猿的眼光看生活”
以上是关于如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:如何将 Excel 文件存储在给定的路径中?