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

在這裏插入圖片描述

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