参考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。
**************************************只要思想不滑坡,办法总比困难多***************************************