本文經受權轉自 PHPHub 社區php
maatwebsite/excel 是一款強大的 Excel 文件處理擴展包, 可以快速完成 Excel 文件的的導出, 解析等功能.laravel
本項目由 The EST Group 團隊成員 @monkey 整理髮布, 首發地爲 PHPHub 社區.git
Demo 代碼請見:github
https://github.com/zhengjinghua/est-excel-demoweb
請參照此文檔運行 Demo:數組
https://phphub.org/topics/1902瀏覽器
安裝;緩存
基礎用法;微信
更多功能.app
接下來是詳細解說.
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"
默認配置基本能通用大部分的項目開發需求, 所以本文不對此配置文件作過多敘述, 想深刻研究的童鞋能夠閱讀官方文檔.
到此, 此拓展包即安裝成功 :beers?beers:
# $excel_file_path = 你的 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 並能直接在瀏覽器下載 # $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 內容見下圖:
<img src="http://7xrxcg.com1.z0.glb.clouddn.com/36d628e26b59530839f3e1c4230c918f.png" width="600">
除了上述的解析/導出功能外, 此擴展包還支持:
解析指定表格裏的指定列;
格式化日期;
添加計算公式;
緩存表格;
批量解析指定目錄裏的全部 Excel 文件;
能夠作格式轉換, 如將 csv 轉換成 xls, 反之亦可;
能夠將 Excel 結合 blade 模板引擎進行渲染.
這些更多的用例請移步 官方文檔 參考.
歡迎關注 LaravelTips
, 一個專一於爲 Laravel 開發者服務, 致力於幫助開發者更好的掌握 Laravel 框架, 提高開發效率的微信公衆號.