이 글의 내용은 thinkphp3.2.3에 phpExcel을 통합하여 데이터를 내보내는 내용입니다. 필요한 친구는 참고하시면 됩니다
public function alliance_createxls(){ $allianceObj = M('alliance_apply'); $result = $allianceObj ->field("apply_name,sex,company,card,duty,phone,points_part,email,stayinfo,eatinfo,address,remark") ->select(); foreach ($result as $key => $vo) { $result[$key]['card'] = $vo['card']." "; $result[$key]['phone'] = $vo['phone']." "; if($vo['sex'] == 0){ $result[$key]['sex'] = '男'; }else{ $result[$key]['sex'] = '女'; } switch ($vo['duty']) { case 1: $result[$key]['duty'] = '学校院长'; break; case 2: $result[$key]['duty'] = '学校副院长'; break; case 3: $result[$key]['duty'] = '分院院长'; break; case 4: $result[$key]['duty'] = '分院副院长'; break; case 5: $result[$key]['duty'] = '系主任'; break; case 6: $result[$key]['duty'] = '副系主任'; break; case 7: $result[$key]['duty'] = '教研室主任'; break; case 8: $result[$key]['duty'] = '教师'; break; case 9: $result[$key]['duty'] = '总经理'; break; case 10: $result[$key]['duty'] = '副总经理'; break; case 11: $result[$key]['duty'] = '总监'; break; case 12: $result[$key]['duty'] = '职员'; break; default: $result[$key]['duty'] = '学校院长'; break; } switch ($vo['points_part']) { case 1: $result[$key]['points_part'] = '信息安全校企合作分盟'; break; case 2: $result[$key]['points_part'] = '云计算校企合作分盟'; break; case 3: $result[$key]['points_part'] = '计算机网络校企合作分盟'; break; case 4: $result[$key]['points_part'] = '机器人技术应用校企合作分盟'; break; case 5: $result[$key]['points_part'] = 'VR专业分盟'; break; default: $result[$key]['points_part'] = '--'; break; } if($vo['stayinfo'] == 1){ $result[$key]['stayinfo'] = '单住'; }else{ $result[$key]['stayinfo'] = '合住'; } } //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 import("Org.Util.PHPExcel"); import("Org.Util.PHPExcel.Writer.Excel5"); import("Org.Util.PHPExcel.IOFactory.php"); $filename="联盟大会报名"; $headArr=array("姓名","性别","单位名称","身份证号","职务","手机号码","分盟参与意向","邮箱地址","住宿要求","饮食要求","通讯地址","备注信息"); $this->getExcel($filename,$headArr,$result); } private function getExcel($fileName,$headArr,$data){ //对数据进行检验 if(empty($data) || !is_array($data)){ die("data must be a array"); } //检查文件名 if(empty($fileName)){ exit; } $date = date("Y_m_d_H_i_s",time()); $fileName .= "_{$date}.xls"; //创建PHPExcel对象,注意,不能少了\ $objPHPExcel = new \PHPExcel(); $objProps = $objPHPExcel->getProperties(); //设置表头 $key = ord("A"); foreach($headArr as $v){ $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v); $key += 1; } $column = 2; $objActSheet = $objPHPExcel->getActiveSheet(); foreach($data as $key => $rows){ //行写入 $span = ord("A"); foreach($rows as $keyName=>$value){// 列写入 $j = chr($span); $objActSheet->setCellValue($j.$column, $value); $span++; } $column++; } $fileName = iconv("utf-8", "gb2312", $fileName); //重命名表 // $objPHPExcel->getActiveSheet()->setTitle('test'); //设置活动单指数到第一个表,所以Excel打开这是第一个表 $objPHPExcel->setActiveSheetIndex(0); ob_end_clean(); ob_start(); header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$fileName\""); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); //文件通过浏览器下载 exit; }
이것은 숫자를 처리할 때 Excel의 기본 숫자가 너무 길기 때문에 과학적 표기법으로 변환됩니다. 처리가 매우 간단합니다. 내보낼 때 숫자를 문자열로 변환하면 Excel에서는 이를 숫자로 인식하지 못합니다. 과학적 표기법으로 표시되지 않습니다.
제가 해결한 방법은 변수 뒤에 공백을 추가하는 것인데 간단하고 편리합니다.
rreee위 내용은 thinkphp3.2.3은 phpExcel을 통합하여 데이터 내보내기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!