這篇文章給大家分享的內容是關於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;}
關於PHPExcel匯出Excel時身份證,數字會匯出為科學計數的處理方法
這是因為Excel處理數字裡預設數字太長會轉化為科學計數法,處理起來很簡單,我們在匯出時把數字轉為字串,Excel就不會識別為數字了,也就不會顯示為科學計數方式。
我的處理方式是在變數後面加個空格,簡單方便。
$usercode .= ' ';$money .= ' ';