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');
}
}

浙公网安备 33010602011771号