前端請求方法:GET
PHPExcel類庫下載鏈接: https://pan.baidu.com/s/1PkN5-jGhWWWvT2Vf07JiPQ 提取碼: f66s
導出EXCEL亂碼問題 解決方法:ob_end_clean(); //清除緩沖區,避免亂碼
代碼實現:
public function export(){ //1.從數據庫中取出數據 $list = Db('withdrawal')->alias('w') ->join('snake_member m','m.id=w.member_id') ->order('w.id asc')->field('w.*,m.username,m.phone')->select(); //2.加載PHPExcle類庫 vendor('PHPExcel.PHPExcel'); ob_end_clean();//清除緩沖區,避免亂碼 //3.實例化PHPExcel類 $objPHPExcel = new \PHPExcel(); //4.激活當前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //5.設置表格頭(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'ID') ->setCellValue('B1', '會員ID') ->setCellValue('C1', '會員姓名') ->setCellValue('D1', '會員號碼') ->setCellValue('E1', '提現金額(元)') ->setCellValue('F1', '提現時間') ->setCellValue('G1', '審核狀態'); //設置A列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //設置單元格寬度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(12); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(10); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(20); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(10); // 6.循環剛取出來的數組,將數據逐一添加到excel表格。 for($i=0;$i<count($list);$i++){ $objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//ID $objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['member_id']);//會員ID $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['username']);//會員姓名 $objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['phone']);//會員號碼 $objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['total']);//提現金額 $list[$i]['create_time'] = date('Y-m-d H:i:s',$list[$i]['create_time']); $objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['create_time']);//提現時間 switch ($list[$i]['is_check']) { case 1: $list[$i]['is_check'] = '通過'; break; case 2: $list[$i]['is_check'] = '拒絕'; break; default: $list[$i]['is_check'] = '未審核'; break; } $objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2),$list[$i]['is_check']);//審核狀態 } //7.設置保存的Excel表格名稱 $filename = '會員申請提現記錄'.date('ymd',time()).'.xls'; //8.設置當前激活的sheet表格名稱; $objPHPExcel->getActiveSheet()->setTitle('提現記錄'); //9.設置瀏覽器窗口下載表格 header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$filename.'"'); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下載文件在瀏覽器窗口 $objWriter->save('php://output'); exit; }