$styleArray = [ 'alignment' => [ 'horizontal' => Alignment::HORIZONTAL_CENTER, 'vertical' => Alignment::VERTICAL_CENTER ], ]; $border_style = [ 'borders' => [ 'allborders' => [ 'style' => \PHPExcel_Style_Border::BORDER_THIN , ] ] ]; $begin_date = $request->begin_date; $end_date = $request->end_date; $search = $request->search_word; $arr_com = []; if (isset($request->com_val)){ $arr_com = explode(',',$request->com_val); } $arr_fact = []; if (isset($request->fact_val)){ $arr_fact = explode(',',$request->fact_val); } $res = $this->getData($begin_date,$end_date,$search,$arr_com,$arr_fact,0,0); $data = $res['data']; if(count($data)>0){ ob_end_clean(); ob_start(); $year = date('Y',strtotime($begin_date)); $week = intval(date('W',strtotime($begin_date))); $filename = $year.'年'.$week.'周出货表'; $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle($filename); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30); $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(40); $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20); $objPHPExcel->getActiveSheet()->getCell("A1")->setValue($filename); $objPHPExcel->getActiveSheet()->mergeCells('A1:I1'); $objPHPExcel->getActiveSheet()->getCell("A2")->setValue('出货日期'); $richTextObj = new \PHPExcel_RichText(); $setStyleObj = $richTextObj->createTextRun("国别(海运/"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); $setStyleObj = $richTextObj->createTextRun("空运"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FFFF0000")); $setStyleObj = $richTextObj->createTextRun("/"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); $setStyleObj = $richTextObj->createTextRun("陆运"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF00FF00")); $setStyleObj = $richTextObj->createTextRun("/"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); $setStyleObj = $richTextObj->createTextRun("铁路"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF0000FF")); $setStyleObj = $richTextObj->createTextRun("/"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); $setStyleObj = $richTextObj->createTextRun("海空"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FFFF00FF")); $setStyleObj = $richTextObj->createTextRun(")"); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); $objPHPExcel->getActiveSheet()->getCell("E2")->setValue($richTextObj); foreach ($data as $key =>$value){ $excelRow = ($key + 3); $objPHPExcel->getActiveSheet()->getCell('D'.$excelRow)->setValue($value['tod_date']); $richTextObjNation = new \PHPExcel_RichText(); $count_nation = count($value['nations']); foreach ($value['nations'] as $k_nation => $v_nation){ if($v_nation['flag'] == 0){ $setStyleObj = $richTextObjNation->createTextRun($v_nation['name']); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); if($k_nation != $count_nation - 1){$setStyleObj = $richTextObjNation->createTextRun("、");$setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); } } if($v_nation['flag'] == 1){ $setStyleObj = $richTextObjNation->createTextRun($v_nation['name']); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FFFF0000")); if($k_nation != $count_nation - 1){$setStyleObj = $richTextObjNation->createTextRun("、");$setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); } } if($v_nation['flag'] == 2){ $setStyleObj = $richTextObjNation->createTextRun($v_nation['name']); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF00FF00")); if($k_nation != $count_nation - 1){$setStyleObj = $richTextObjNation->createTextRun("、");$setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); } } if($v_nation['flag'] == 3){ $setStyleObj = $richTextObjNation->createTextRun($v_nation['name']); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF0000FF")); if($k_nation != $count_nation - 1){$setStyleObj = $richTextObjNation->createTextRun("、");$setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); } } if($v_nation['flag'] == 4){ $setStyleObj = $richTextObjNation->createTextRun($v_nation['name']); $setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FFFF00FF")); if($k_nation != $count_nation - 1){$setStyleObj = $richTextObjNation->createTextRun("、");$setStyleObj->getFont()->setColor(new \PHPExcel_Style_Color("FF000000")); } } } $objPHPExcel->getActiveSheet()->getCell('E'.$excelRow)->setValue($richTextObjNation); $objPHPExcel->getActiveSheet()->getRowDimension($excelRow)->setRowHeight(20); $objPHPExcel->getActiveSheet()->getStyle('E'.$excelRow)->getAlignment()->setWrapText(true); } $objPHPExcel->getActiveSheet()->getStyle('A1:I2')->applyFromArray($styleArray); $objPHPExcel->getActiveSheet()->getStyle('A2:I'.$excelRow)->applyFromArray($border_style); $objPHPExcel->getActiveSheet()->getStyle('A1:I1')->getFont()->setBold(true)->setName('黑体')->setSize(16); $objPHPExcel->getActiveSheet()->getStyle('A2:I2')->getFont()->setBold(true)->setName('宋体')->setSize(12); ob_end_clean(); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="' . $filename . '.xls'); header('Cache-Control: max-age=0'); header('Content-Type: text/html; charset=utf-8'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); $objWriter->save('php://output'); exit; } else{ return response()->json(['code' => 1,'msg' => '没有数据'] ); }
来源地址:https://blog.csdn.net/xcbzsy/article/details/132475867
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341