浏览:23969
发布日期:2013/07/24 分类:技术分享
代码有点长,读起来有点累。先来个截图
导出的Excel太宽了,所以将后面的列宽重新调整了再截的图
功能包括:
1、设置单元格格式,包括单元格边框、单元格高度、单元格宽度
2、合并指定的单元格
3、设置Excel数据源,并将数据源保护起来(这个是为了实现单元格下拉选项功能)
4、设置字体样式
publicfunction export(){ -
//此处全是一维数组 -
=$resumeState C ('RESUME_STATE'); -
=$processingStatus C ('PROCESSING_STATUS'); -
=$hunyin C ('HUNYIN'); -
=$sex C ('SEX'); -
=$AQE C ('AQE'); -
-
//面试企业列表 -
=$C M ('Company'); -
=$company $C ->where('status=1')->field('id,title')->order($this->order)->select(); -
-
//需要被出的数据 -
=$condition $this ->condition; -
=$Model $this ->model; -
=$Dao M ($Model); -
=$list $Dao ->where($condition)->select(); -
-
if(empty($list)){ -
->error('没有可以导出的简历');$this -
} -
-
('PHPExcel.PHPExcel');vendor -
=$fileName $this ->fileName; -
=$fileName empty ($fileName)?'导出简历-'.date('Y-m-d',time()):$fileName; -
-
=$PHPExcel new PHPExcel(); -
-
//设置基本信息 -
->getProperties()->setCreator("jecken")$PHPExcel -
->setLastModifiedBy("jecken") -
->setTitle("上海**人力资源服务有限公司") -
->setSubject("简历列表") -
->setDescription("") -
->setKeywords("简历列表") -
->setCategory(""); -
->setActiveSheetIndex(0);$PHPExcel -
->getActiveSheet()->setTitle($fileName);$PHPExcel -
-
//取得HR列表 -
=$hrlist M ('Admin')->field('id,nickname')->select(); -
foreach($hrlist as $key =>$value ){ -
[$value['id']]$hr = $value ['nickname']; -
} -
-
//存储Excel数据源到其他工作薄 -
->createSheet();$PHPExcel -
=$subObject $PHPExcel ->getSheet(1); -
->setTitle('data');$subObject -
foreach($resumeState as $key =>$value ){ -
->setCellValue('A'.$key,$value);$subObject -
} -
foreach($processingStatus as $key =>$value ){ -
->setCellValue('B'.$key,$value);$subObject -
} -
foreach($company as $key =>$value ){ -
->setCellValue('C'.($key+1),$value['title']);$subObject -
[$value['id']]=$value['title'];$companyList -
} -
->getColumnDimension('A')->setWidth(30);$subObject -
->getColumnDimension('B')->setWidth(30);$subObject -
->getColumnDimension('C')->setWidth(30);$subObject -
-
//保护数据源 -
->getProtection()->setSheet(true);$subObject -
->protectCells('A1:C1000',time());$subObject -
-
//填入主标题 -
->getActiveSheet()->setCellValue('A1',$PHPExcel '上海**人力资源服务有限公司'); -
//填入副标题 -
->getActiveSheet()->setCellValue('A2',$PHPExcel '简历列表(导出日期:'.date('Y-m-d',time()).')'); -
-
//填入表头 -
->getActiveSheet()->setCellValue('A3',$PHPExcel 'ID'); -
->getActiveSheet()->setCellValue('B3',$PHPExcel '姓名'); -
->getActiveSheet()->setCellValue('C3',$PHPExcel '性别'); -
->getActiveSheet()->setCellValue('D3',$PHPExcel '年龄'); -
->getActiveSheet()->setCellValue('E3',$PHPExcel '联系方式'); -
->getActiveSheet()->setCellValue('F3',$PHPExcel '学历'); -
->getActiveSheet()->setCellValue('G3',$PHPExcel '是否有AQE证书'); -
->getActiveSheet()->setCellValue('H3',$PHPExcel '住址'); -
->getActiveSheet()->setCellValue('I3',$PHPExcel '面试日期'); -
->getActiveSheet()->setCellValue('J3',$PHPExcel '面试时间'); -
->getActiveSheet()->setCellValue('K3',$PHPExcel '所属HR'); -
-
->getActiveSheet()->setCellValue('L3',$PHPExcel '备注'); -
->getActiveSheet()->setCellValue('M3',$PHPExcel '证件号码'); -
->getActiveSheet()->setCellValue('N3',$PHPExcel 'QQ'); -
->getActiveSheet()->setCellValue('O3',$PHPExcel '电子邮箱'); -
->getActiveSheet()->setCellValue('P3',$PHPExcel '出生日期'); -
->getActiveSheet()->setCellValue('Q3',$PHPExcel '婚姻状况'); -
->getActiveSheet()->setCellValue('R3',$PHPExcel '户籍'); -
->getActiveSheet()->setCellValue('S3',$PHPExcel '毕业时间'); -
->getActiveSheet()->setCellValue('T3',$PHPExcel '毕业院校'); -
-
->getActiveSheet()->setCellValue('U3',$PHPExcel '专业'); -
->getActiveSheet()->setCellValue('V3',$PHPExcel '工作经历'); -
->getActiveSheet()->setCellValue('W3',$PHPExcel '期望工作地点'); -
->getActiveSheet()->setCellValue('X3',$PHPExcel '期望薪酬'); -
->getActiveSheet()->setCellValue('Y3',$PHPExcel '期望职业'); -
->getActiveSheet()->setCellValue('Z3',$PHPExcel '面试单位'); -
->getActiveSheet()->setCellValue('AA3',$PHPExcel '面试岗位'); -
->getActiveSheet()->setCellValue('AB3',$PHPExcel '目前状态'); -
->getActiveSheet()->setCellValue('AC3',$PHPExcel '处理状态'); -
->getActiveSheet()->setCellValue('AD3',$PHPExcel '自我评价'); -
->getActiveSheet()->setCellValue('AE3',$PHPExcel '其他'); -
-
//填入列表 -
=$k 1; -
foreach($list as $key =>$value ){ -
++;$k -
-
->getActiveSheet()->setCellValue('A'.($key+4),$PHPExcel $value ['id']); -
->getActiveSheet()->setCellValue('B'.($key+4),$PHPExcel $value ['name']); -
-
//性别 -
->getActiveSheet()->getCell('C'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('请选择性别') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('性别') -
->setFormula1 ('"'.join(',',$sex ).'"'); -
->getActiveSheet()->setCellValue('C'.($key+4),$PHPExcel $sex [$value['sex']]); -
-
//年龄 -
->getActiveSheet()->setCellValue('D'.($key+4),$PHPExcel $value ['age']); -
-
->getActiveSheet()->setCellValue('E'.($key+4),$PHPExcel $value ['tel']); -
->getActiveSheet()->setCellValue('F'.($key+4),$PHPExcel $value ['xueli']); -
-
//是否有AQE证书 -
->getActiveSheet()->getCell('G'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('请选择是否有AQE证书') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('是否有AQE证书') -
->setFormula1 ('"'.join(',',$AQE ).'"'); -
->getActiveSheet()->setCellValue('G'.($key+4),$PHPExcel $AQE [$value['hasAQE']]); -
-
->getActiveSheet()->setCellValue('H'.($key+4),$PHPExcel $value ['juzhudi']); -
->getActiveSheet()->setCellValue('I'.($key+4),$PHPExcel setDate ($value['auditionTime'],'Y年m月d日'));//面试日期 -
->getActiveSheet()->setCellValue('J'.($key+4),$PHPExcel setDate ($value['auditionTime'],'H点i分'));//面试时间 -
->getActiveSheet()->setCellValue('K'.($key+4),$PHPExcel $hr [$value['userid']]);//所属HR -
->getActiveSheet()->setCellValue('L'.($key+4),$PHPExcel $value ['remark']);//备注 -
-
->getActiveSheet()->setCellValue('M'.($key+4),$PHPExcel $value ['cid']);//证件号码 -
->getActiveSheet()->setCellValue('N'.($key+4),$PHPExcel $value ['qq']); -
->getActiveSheet()->setCellValue('O'.($key+4),$PHPExcel $value ['email']); -
->getActiveSheet()->setCellValue('P'.($key+4),$PHPExcel setDate ($value['birthday'])); -
-
-
-
-
//婚姻 -
->getActiveSheet()->getCell('Q'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('请选择婚姻') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('性别') -
->setFormula1 ('"'.join(',',$hunyin ).'"'); -
->getActiveSheet()->setCellValue('Q'.($key+4),$PHPExcel $hunyin [$value['hunyin']]); -
-
->getActiveSheet()->setCellValue('R'.($key+4),$PHPExcel $value ['huji']); -
->getActiveSheet()->setCellValue('S'.($key+4),$PHPExcel setDate ($value['graduationTime'])); -
->getActiveSheet()->setCellValue('T'.($key+4),$PHPExcel $value ['graduationSchool']); -
->getActiveSheet()->setCellValue('U'.($key+4),$PHPExcel $value ['specialty']); -
->getActiveSheet()->setCellValue('V'.($key+4),$PHPExcel $value ['works']); -
->getActiveSheet()->setCellValue('W'.($key+4),$PHPExcel $value ['expectAddress']); -
->getActiveSheet()->setCellValue('X'.($key+4),$PHPExcel $value ['expectSalary']); -
->getActiveSheet()->setCellValue('Y'.($key+4),$PHPExcel $value ['expectProfession']); -
-
//面试单位 -
->getActiveSheet()->getCell('Z'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('输入的值有误') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('面试单位') -
->setFormula1 ('data!$C$1:$C$'.count($company)); -
->getActiveSheet()->setCellValue('Z'.($key+4),$PHPExcel $companyList [$value['company']]);//面试单位 -
->getActiveSheet()->setCellValue('AA'.($key+4),$PHPExcel $value ['post']);//面试岗位 -
-
//简历状态 -
->getActiveSheet()->getCell('AB'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('输入的值有误') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('简历状态') -
->setFormula1 ('data!$A$1:$A$'.count($resumeState)); -
->getActiveSheet()->setCellValue('AB'.($key+4),$PHPExcel $resumeState [$value['resumeState']]); -
-
//处理状态 -
->getActiveSheet()->getCell('AC'.($key+4))->getDataValidation()$PHPExcel -
->setType (PHPExcel_Cell_DataValidation::TYPE_LIST) -
->setErrorStyle (PHPExcel_Cell_DataValidation::STYLE_INFORMATION) -
->setAllowBlank (false) -
->setShowInputMessage (true) -
->setShowErrorMessage (true) -
->setShowDropDown (true) -
->setErrorTitle ('输入的值有误') -
->setError ('您输入的值不在下拉框列表内.') -
->setPromptTitle ('处理状态') -
->setFormula1 ('data!$B$1:$B$'.count($processingStatus)); -
->getActiveSheet()->setCellValue('AC'.($key+4),$PHPExcel $processingStatus [$value['processingStatus']]); -
-
->getActiveSheet()->setCellValue('AD'.($key+4),$PHPExcel $value ['selfIntroduction']); -
->getActiveSheet()->setCellValue('AE'.($key+4),$PHPExcel $value ['other']); -
-
//设置每一行行高 -
->getActiveSheet()->getRowDimension($key+4)->setRowHeight(30);$PHPExcel -
} -
-
//合并单元格 -
->getActiveSheet()->mergeCells('A1:AE1');$PHPExcel -
->getActiveSheet()->mergeCells('A2:AE2');$PHPExcel -
-
//设置单元格宽度 -
->getActiveSheet()->getColumnDimension('A')->setWidth(6);$PHPExcel -
->getActiveSheet()->getColumnDimension('B')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('C')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('D')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('E')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('F')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('G')->setWidth(16);$PHPExcel -
->getActiveSheet()->getColumnDimension('H')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('I')->setWidth(10);$PHPExcel -
->getActiveSheet()->getColumnDimension('J')->setWidth(10);$PHPExcel -
->getActiveSheet()->getColumnDimension('K')->setWidth(10);$PHPExcel -
->getActiveSheet()->getColumnDimension('L')->setWidth(30);$PHPExcel -
->getActiveSheet()->getColumnDimension('M')->setWidth(20);$PHPExcel -
->getActiveSheet()->getColumnDimension('N')->setWidth(20);$PHPExcel -
->getActiveSheet()->getColumnDimension('O')->setWidth(25);$PHPExcel -
->getActiveSheet()->getColumnDimension('P')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('Q')->setWidth(10);$PHPExcel -
->getActiveSheet()->getColumnDimension('R')->setWidth(25);$PHPExcel -
->getActiveSheet()->getColumnDimension('S')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('T')->setWidth(18);$PHPExcel -
->getActiveSheet()->getColumnDimension('U')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('V')->setWidth(30);$PHPExcel -
->getActiveSheet()->getColumnDimension('W')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('X')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('Y')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('Z')->setWidth(20);$PHPExcel -
->getActiveSheet()->getColumnDimension('AA')->setWidth(20);$PHPExcel -
->getActiveSheet()->getColumnDimension('AB')->setWidth(20);$PHPExcel -
->getActiveSheet()->getColumnDimension('AC')->setWidth(15);$PHPExcel -
->getActiveSheet()->getColumnDimension('AD')->setWidth(30);$PHPExcel -
->getActiveSheet()->getColumnDimension('AE')->setWidth(30);$PHPExcel -
-
//设置表头行高 -
->getActiveSheet()->getRowDimension(1)->setRowHeight(35);$PHPExcel -
->getActiveSheet()->getRowDimension(2)->setRowHeight(22);$PHPExcel -
->getActiveSheet()->getRowDimension(3)->setRowHeight(20);$PHPExcel -
-
//设置字体样式 -
->getActiveSheet()->getStyle('A1')->getFont()->setName('黑体');$PHPExcel -
->getActiveSheet()->getStyle('A1')->getFont()->setSize(20);$PHPExcel -
->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);$PHPExcel -
->getActiveSheet()->getStyle('A3:AE3')->getFont()->setBold(true);$PHPExcel -
-
->getActiveSheet()->getStyle('A2')->getFont()->setName('宋体');$PHPExcel -
->getActiveSheet()->getStyle('A2')->getFont()->setSize(16);$PHPExcel -
-
->getActiveSheet()->getStyle('A4:AE'.($k+2))->getFont()->setSize(10);$PHPExcel -
//设置居中 -
->getActiveSheet()->getStyle('A1:AE'.($k+2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);$PHPExcel -
-
//所有垂直居中 -
->getActiveSheet()->getStyle('A1:AE'.($k+2))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);$PHPExcel -
-
//设置单元格边框 -
->getActiveSheet()->getStyle('A3:AE'.($k+2))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);$PHPExcel -
-
//设置自动换行 -
->getActiveSheet()->getStyle('A3:AE'.($k+2))->getAlignment()->setWrapText(true);$PHPExcel -
-
-
//保存为2003格式 -
=$objWriter new PHPExcel_Writer_Excel5($PHPExcel); -
("Pragma:header public" ); -
("Expires:header 0" ); -
("Cache-Control:must-revalidate,header post-check=0, );pre-check=0" -
("Content-Type:application/force-download");header -
("Content-Type:application/vnd.ms-execl");header -
("Content-Type:application/octet-stream");header -
("Content-Type:application/download");header -
-
//多浏览器下兼容中文标题 -
=$encoded_filename urlencode ($fileName); -
=$ua $_SERVER ["HTTP_USER_AGENT"]; -
if(preg_match("/MSIE/", $ua )){ -
('Content-Disposition:header attachment; filename="' . $encoded_filename .'.xls"'); -
}else if (preg_match("/Firefox/", $ua )){ -
('Content-Disposition:header attachment; filename*="utf8\'\'' . $fileName .'.xls"'); -
}else { -
('Content-Disposition:header attachment; filename="' . $fileName .'.xls"'); -
} -
-
("Content-Transfer-Encoding:binary");header -
->save('php://output');$objWriter -
}
来源:https://www.cnblogs.com/lxwphp/p/7731423.html