laravel excel下载

自己编写了一个server

post 传入 where 判断条件 select 二维数组 key 展示 select value 是title

<?php
namespace App\Http\Services\Excel;

use App\Exports\ExcelExport;
use App\Http\Services\BaseServices;
use Illuminate\Http\Request;
use Excel;
/**
 *@Description: Excle自定义下载
 *@ClassAuthor: lijian
 *@Date: 2021-04-23 14:39:19
*/
class ExcleServer extends BaseServices
{
    //实例化model
    protected $mode;
    //查询条件
    protected $where;
    //获取查询参数
    protected $select = []; 
    //获取请求体
    protected $body = [];
    //获取标题
    protected $title;

    /**
     *@Description: 初始化参数
     *@MethodAuthor: lijian
     *@Date: 2021-04-23 14:39:39
    */
    public function __construct()
    {
        $param = request()->all();
        
        $this->where = $param['where']??[];
        if(isset($param['select']) && is_array($param['select'])){
            foreach($param['select'] as $key => $value){
                array_push($this->select,$key);
                array_push($this->body,$value);
            }
        }
        //获取文件名
        $this->title = $param['title']??time();

    }

    /**
     *@Description: Excel文件导出功能
     *@MethodAuthor: lijian
     *@Date: 2021-04-23 15:06:36
     *@param:
     *@return:
    */
    public function export($model){

        $data = $model->where($this->where)->select($this->select)->get()->toArray();
        //因为要设置行名称,所以讲表头合并到结果集的第一行
        $result = array_merge([$this->body], $data);
        
        return Excel::download(new ExcelExport($result), $this->title.'.xlsx');
    }
}

posted @ 2021-04-23 16:16  野香蕉  阅读(280)  评论(0)    收藏  举报