$post = I('get.'); //用户画像,9个分类同时导出,9个sheet $dataAll = []; $tagname = D('SpsTag')->where(['tag_category' => 3, 'tag_dict_id' => ['between', [1, 9]]])->getField('tag_dict_id,tag_dict_value'); foreach ($tagname as $k=>$v){ $post['tag_3'] = $k;//用户画像 $dataAll[$k] = D('UserTag', 'Service')->userTagLately($post); } Vendor('PHPExcel.IOFactory'); Vendor('PHPExcel.PHPExcel'); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); $sheetIndex = 0; if($dataAll){ $ymArr = []; $ymKeyArr = []; $ymArr[] = date('Ym'); for ($i=1;$i<6;$i++){ $ymArr[] = date('Ym',strtotime('-'.$i.' month')); } foreach ($ymArr as $ym) { $ymKeyArr[] = D('UserTag', 'Service')->getYmDesc($ym); } foreach ($dataAll as $k=>$data){ if($sheetIndex > 0) $objPHPExcel->createSheet($sheetIndex); $sheetName = $tagname[$k]; //excel标题栏 $objPHPExcel->setActiveSheetIndex($sheetIndex) ->setCellValue('A1', '地区') ->setCellValue('B1', $ymKeyArr[0]) ->setCellValue('C1', $ymKeyArr[1]) ->setCellValue('D1', $ymKeyArr[2]) ->setCellValue('E1', $ymKeyArr[3]) ->setCellValue('F1', $ymKeyArr[4]) ->setCellValue('G1', $ymKeyArr[5]); //excel数据 $j = 2; foreach ($data as $kk=>$vv){ $objPHPExcel->setActiveSheetIndex($sheetIndex) ->setCellValue('A' . $j, $kk) ->setCellValue('B' . $j, $vv[$ymKeyArr[0]]) ->setCellValue('C' . $j, $vv[$ymKeyArr[1]]) ->setCellValue('D' . $j, $vv[$ymKeyArr[2]]) ->setCellValue('E' . $j, $vv[$ymKeyArr[3]]) ->setCellValue('F' . $j, $vv[$ymKeyArr[4]]) ->setCellValue('G' . $j, $vv[$ymKeyArr[5]]); $j ++; } $objPHPExcel->getActiveSheet()->setTitle($sheetName); $sheetIndex ++; } } if ($post['stattype'] == 1){ $stattypeDesc = '省区'; }else{ $stattypeDesc = '城市'; } $fileName = '近半年用户画像数据-'.$stattypeDesc.'-'.date('Ym'); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$fileName.'.xls"'); header("Content-Transfer-Encoding: binary"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;
excel多sheet导出
最新推荐文章于 2024-04-12 10:57:55 发布