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="
        <html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'>
        <head>
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
        <xml><w:WordDocument><w:View>Print</w:View></xml>
        </head>";
//这里循环数据并调用下面的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= "<body>
    <h1 style='text-align: center'>{$v['user']['nickname']}的简历</h1>
    <table border='1' cellpadding='3' cellspacing='0' style='height: 92px;'>
        <tr>
            <td width='93' valign='center' colspan='2' >姓名</td>
            <td width='160' valign='center' colspan='4' >{$v['user']['nickname']}</td>
            <td width='89' valign='center' colspan='2' >性别</td>
            <td width='156' valign='center' colspan='3' >";
        if($v['user']['sex'] == 1){
            $content.= '男';
        } else if($v['user']['sex'] == 0){
            $content.= '女';
        }

        $content.= "</td>
            <td width='125' colspan='2' rowspan='3' align='center' valign='middle' ><img src='https://www.hbjianhong.com/Public/images/QRCode.png' width='120' height='120' /></td>
        </tr>
        <tr>
            <td width='93' valign='center' colspan='2' >年龄</td>
            <td width='160' valign='center' colspan='4' >{$v['user']['age']}</td>
            <td width='89' valign='center' colspan='2' >学历</td>
            <td width='156' valign='center' colspan='3' >大专</td>
        </tr>
        
        <tr>
            <td width='93' valign='center' colspan='2' >手机</td>
            <td width='160' valign='center' colspan='4' >{$v['user']['phone']}</td>
            <td width='89' valign='center' colspan='2' >服务城市</td>
            <td width='156' valign='center' colspan='3' >{$v['city']}</td>
        </tr>
        <tr>
            <td width='93' valign='center' colspan='2' >期望薪资</td>
            <td width='160' valign='center' colspan='4' >{$v['exs']['title']}</td>
            <td width='89' valign='center' colspan='2' >工作经验</td>
            <td width='156' valign='center' colspan='3' >{$v['years']}</td>
            <td width='89' valign='center'  >工作状态</td>
            <td width='50' valign='center'>";
        if($v['work_status'] == 1){
            $content.= '离职-随时到岗';
        } else if($v['work_status'] == 2){
            $content.= '在职-考虑状态';
        }else if($v['work_status'] == 3){
            $content.= '离职-需要准备';
        }

        $content.= "
            </td>
            
        </tr>
        <tr>
            <td width='93' valign='center' colspan='2'  style='width:93px;'>籍贯</td>
            <td width='530' valign='center' colspan='11' >{$v['hometown']}</td>
        </tr>
        <tr>
            <td width='93' valign='center'>标签</td>
            
                <td width='570' valign='center' colspan='12' >
                ";
        foreach ($v['tags'] as &$vo){
            $content.= $vo['title'].' ';
        }
        $content.= "           
                </td>
            
        </tr>
        <tr>
            <td width='93' valign='center' colspan='2' rowspan='3'>个人简介</td>
            <td width='570' valign='center' colspan='12' rowspan='3' >{$v['Introduction']}</td>
        </tr>
    </table>
    <br>
     <br>
      <br>
       <br>
    </body>";
        return $content;
    }

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章