您的位置:首页 > 编程语言 > PHP开发

ThinkPHP导出Word数据

2018-02-24 09:51 155 查看
有时候编写网站的时候需要导出数据,一般导出数据的时候都是Excel格式的,但在特殊情况下也会 要求导出Word格式。例如:简历需要Word格式。

我在之前的一个人力资源网站项目中就遇到了这种情况,客户的要求就是需要导出用户填写的简历信息,需要Excel格式和Word格式,以前做过Excel格式导出,所以很快解决,但是没有做过Word导出,有点无从下手。后来经过询问和网上查询整理出了ThinkPHP下导出Word格式的代码。

下面的代码是我当时导出简历用到的代码,有需要的朋友可以借鉴一下:

//导出Word的方法
public function word()
{
if(I('id') != ''){
$row = M('user')->where('id = '.I('id'))->find();
$edu = M('edu') -> where('zid = '.$row['zid']) -> select();
$job = M('job') -> where('zid = '.$row['zid']) -> select();
$pro = M('project') -> where('zid = '.$row['zid']) -> select();
$reward = M('reward') -> where('zid = '.$row['zid']) -> select();
$content = getcon($row,$edu,$job,$pro,$reward);
$filename = $row['name'].'的简历';
$filename = iconv('utf-8', 'gb2312', $filename);
header('pragma:public');
header('Content-type:application/vnd.ms-word;charset=utf-8;name="'.$filename.'".doc');
header("Content-Disposition:attachment;filename=$filename.doc");//attachment新窗口打印inline本窗口打印
$html = '<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"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';//这句不能少,否则不能识别图片
echo $html.$content.'</html>';
}
}
//封装的简历格式和内容
function getcon($row,$edu,$job,$pro,$reward)
{
$row['sex'] = $row['sex'] == 1?'男':'女';
$content ='<style>td{padding: 10px;}table{font-family: "微软雅黑", MicrosoftYaHei;}</style>';
$content .= '<h2 style="text-align: center">'.$row['name'].'的简历</h2>';
$content .= '<div style="margin: 0 auto;font-size: 14px"><table border="1" cellpadding="0" cellspacing="0" style="margin: auto">';
$content .='<tr><td style="text-align: center;width: 120px">姓名</td><td>'.$row['name'].'</td><td rowspan="3" width="50"><img src="'.STME_URL.'Public/Upload/jl/head/'.$row['pic'].'" height="100"/></td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">性别</td><td>'.$row['sex'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">出生年月</td><td>'.$row['age'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">政治面貌</td><td colspan="2">'.$row['zz'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">婚姻情况</td><td colspan="2">'.$row['hy'].'</td></tr>';
$content .='<tr><td st
4000
yle="text-align: center;width: 120px">户口所在地</td><td colspan="2">'.$row['hukou'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">目前所在地</td><td colspan="2">'.$row['addres'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">身份证号</td><td colspan="2">'.$row['card'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">电话号码</td><td colspan="2">'.$row['tel'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">紧急联系人</td><td colspan="2">'.$row['jjname'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">紧急联系电话</td><td colspan="2">'.$row['jjtel'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">邮箱</td><td colspan="2">'.$row['email'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">自我评价</td><td colspan="2">'.$row['evaluate'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">教育经历</td><td colspan="2"><table border="0" cellpadding="0" cellspacing="0">';
if($edu){
foreach($edu as $vo){
$content .='<tr><td style="text-align: center;width: 100px">起止时间</td><td>'.$vo['starttime'].'至'.$vo['endtime'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">毕业院校</td><td>'.$vo['school'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">专业</td><td>'.$vo['major'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">学历</td><td>'.$vo['education'].'</td></tr>';
}

}
$content .= '</table></td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">工作经历</td><td colspan="2"><table border="0" cellpadding="0" cellspacing="0">';
if($job){
foreach($job as $vo){
$content .='<tr><td style="text-align: center;width: 100px">起止时间</td><td>'.$vo['starttime'].'至'.$vo['endtime'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">公司名称</td><td>'.$vo['name'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">职务部门</td><td>'.$vo['department'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">职位名称</td><td>'.$vo['position'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">薪资情况</td><td>'.$vo['xz'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">工作职能</td><td>'.$vo['duty'].'</td></tr>';
}

}
$content .= '</table></td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">项目经验</td><td colspan="2"><table border="0" cellpadding="0" cellspacing="0">';
if($pro){
foreach($pro as $vo){
$content .='<tr><td style="text-align: center;width: 100px">起止时间</td><td>'.$vo['starttime'].'至'.$vo['endtime'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">项目名称</td><td>'.$vo['name'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">项目职位</td><td>'.$vo['position'].'</td></tr>';
$content .='<tr><td style
a833
="text-align: center;width: 100px">项目职能</td><td>'.$vo['duty'].'</td></tr>';
}

}
$content .= '</table></td></tr>';
$content .='<tr><td style="text-align: center;width: 120px">活动奖励</td><td colspan="2"><table border="0" cellpadding="0" cellspacing="0">';
if($reward){
foreach($reward as $vo){
$content .='<tr><td style="text-align: center;width: 100px">获奖时间</td><td>'.$vo['time'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">校内职位</td><td>'.$vo['position'].'</td></tr>';
$content .='<tr><td style="text-align: center;width: 100px">获奖级别</td><td>'.$vo['level'].'</td></tr>';
}

}
$content .= '</table></td></tr>';
$content .='</table></div>';

return $content;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息