1. 程式人生 > >Laravel5框架中使用PHPExcel詳細步驟總結

Laravel5框架中使用PHPExcel詳細步驟總結

參考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。

**************************************只要思想不滑坡,辦法總比困難多***************************************