tp5.1导出简历模板为word文档类型,不用下载任何插件

此方法只能将多个简历以分页形式展示,不能分开批量导出多个文件的形式,如果有做出来的欢迎留言相告,谢谢!!!
就用两个方法(也可以合到一个方法中),直接上干货,里面有注释自己去看:

//这个方法中写导出逻辑
public function ceshi(Request $request)
    {
    //先查询数据,定义多个模型关联
        $data = Technician::where($where)->with(['user' => function($query) {
            $query->field('id,nickname,phone,avatar,sex,age');
        },'exs' => function($query) {
            $query->field('id,title');
        },'tags' => function($query) {
            $query->field('id,title');
        }])->order('id desc')->paginate(10)->toArray();

	//注意这里的头部一定要拿到循环数据的外面,只能有一个头部,不然只能导出一条数据
        $content="
        
        
        
        Print
        ";
//这里循环数据并调用下面的ce方法填充数据,并拼接
        foreach ($data['data'] as $k=>$v) {
            $content.= $this->ce($v);
        }
        //打开缓冲区(一定要加上缓冲区,先把输出存到里面,再一起输出)
        ob_start();
        //将数据输出浏览器
        echo $content;
        header('Cache-Control: public');
        //定义文档名称
        header('Content-Disposition: attachment; filename='.'简历.doc');
        header('Pragma:no-cache');
        header('Expires:0');
        //开始执行下载
        Header('Content-type: application/octet-stream');//声明下载文件的类型
        Header('Accept-Ranges: bytes');
        ob_end_flush();//输出全部内容到浏览器
    }






//这个方法中用来拼接写简历模板,并填充数据
    public function ce($v)
    {
        $content= "
    

{$v['user']['nickname']}的简历

姓名 {$v['user']['nickname']} 性别 "; if($v['user']['sex'] == 1){ $content.= '男'; } else if($v['user']['sex'] == 0){ $content.= '女'; } $content.= "
年龄 {$v['user']['age']} 学历 大专
手机 {$v['user']['phone']} 服务城市 {$v['city']}
期望薪资 {$v['exs']['title']} 工作经验 {$v['years']} 工作状态 "; if($v['work_status'] == 1){ $content.= '离职-随时到岗'; } else if($v['work_status'] == 2){ $content.= '在职-考虑状态'; }else if($v['work_status'] == 3){ $content.= '离职-需要准备'; } $content.= "
籍贯 {$v['hometown']}
标签 "; foreach ($v['tags'] as &$vo){ $content.= $vo['title'].' '; } $content.= "
个人简介 {$v['Introduction']}




"; return $content; }

tp5.1导出简历模板为word文档类型,不用下载任何插件_第1张图片

你可能感兴趣的:(PHP,tp5.1,Word)