Laravel5框架中使用PHPExcel详细步骤总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dmt742055597/article/details/80014347

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

**************************************只要思想不滑坡,办法总比困难多***************************************


猜你喜欢

转载自blog.csdn.net/dmt742055597/article/details/80014347