本文經授權轉自 PHPHub 社區
說明
maatwebsite/excel 是一款強大的 Excel 檔案處理擴充包, 能夠快速完成 Excel 檔案的的匯出, 解析等功能.
本項目由 The EST Group 團隊成員 @monkey 整理髮布, 首發地為 PHPHub 社區.
文章的 DEMO 項目
運行
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"
預設配置基本能通用大部分的項目開發需求, 因此本文不對此設定檔做過多敘述, 想深入研究的童鞋可以閱讀官方文檔.
到此, 此拓展包即安裝成功 :beers?beers:
基礎用法
解析 Excel 檔案
# $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 檔案
// 匯出 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 模板引擎進行渲染.
這些更多的用例請移步 官方文檔 參考.
歡迎關注 LaravelTips, 一個專註於為 Laravel 開發人員服務, 致力於協助開發人員更好的掌握 Laravel 架構, 提升開發效率的公眾號.