Laravel5框架中使用PHPExcel詳細步驟總結
阿新 • • 發佈:2019-01-31
參考Laravel-excel官網:http://www.maatwebsite.nl/laravel-excel/docs/getting-started
第一步:框架要求滿足相應基礎條件
laravel版本5.+
第二步:執行如下命令安裝依賴及擴充套件:
composer require maatwebsite/excel ~2.1.0
執行成功的結果大概是這樣,如下圖:
第二步:在laravel框架根目錄找到config/app.php中註冊服務提供者到providers陣列:
Maatwebsite\Excel\ExcelServiceProvider::class,
第三步:同樣在config/app.php中註冊門面到aliases陣列:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
第四步:如果想要對Laravel Excel進行更多的自定義配置,執行如下Artisan命令:
php artisan vendor:publish
此時會讓你選擇釋出提供者的相應序號進行建立,只需選擇Excel對應的提供者序號回車即可,如下圖:
執行成功後會在config目錄下生成一個配置檔案excel.php。
這是Laravel Excel的基本安裝過程。
下面介紹Laravel Excel在框架生產環境的基本使用。
// 獲取選中的商品並匯出為excel public static function getProductsByIds(){ // $request = new Request(); $request = \request(); $ids = $request->input('id',[]); if(count($ids) > 0){ $products = Product::with(['product_main_img','product_detail_img','product_property'])->whereIn('id',$ids)->get()->toArray(); }else{ $products = Product::with(['product_main_img','product_detail_img','product_property'])->get()->toArray(); } $new_products = array(); $new_products[] = array('ID','名稱','價格','庫存','刪除時間','分類','圖片路徑','圖片來源','建立時間','修改時間','簡介','主圖id','是否上架','排序','主圖路徑','商品屬性','詳情圖路徑'); foreach ($products as $value){ if(array_key_exists('url',$value['product_main_img'])){ $main_url = $value['product_main_img']['url']; }else{ $main_url = ''; } $value['main_url'] = $main_url; unset($value['product_main_img']); $property_str = ''; if(count($value['product_property']) > 0){ foreach ($value['product_property'] as $k => $v){ $property_str .= $v['name'].':'.$v['detail'].'\r\n'; } } $value['property'] = $property_str; unset($value['product_property']); if(count($value['product_detail_img']) > 0){ foreach ($value['product_detail_img'] as $k => $v){ $detail_url = $v['url']; } }else{ $detail_url = ''; } $value['detail'] = $detail_url; unset($value['product_detail_img']); $new_product = array_values($value); $new_products[] = $new_product; } $action = app(Excel::class); $action->create(iconv('UTF-8', 'GBK', '商品列表'),function($excel) use ($new_products){ $excel->sheet('product', function($sheet) use ($new_products){ $sheet->rows($new_products); }); })->export('xls'); }
這是一個匯出商品列表的簡單方法,儲存格式為excel。
**************************************只要思想不滑坡,辦法總比困難多***************************************