当前位置: 首页 > news >正文

PHPEXCEL 导出excel

在这里插入图片描述

       $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(); //每一行都需要重新New一个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);//数据写进Excel,并对关键字高亮处理foreach ($data as $key =>$value){$excelRow = ($key + 3); //excel第几行$objPHPExcel->getActiveSheet()->getCell('D'.$excelRow)->setValue($value['tod_date']);//国别 运输方式处理$richTextObjNation = new \PHPExcel_RichText(); //每一行都需要重新New一个richText 拼接 运输方式 突击拔高$count_nation = count($value['nations']);foreach ($value['nations'] as $k_nation => $v_nation){//国别 运输方式:  0海运,1空运,2陆运,3铁路,4海空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);// 导出excelob_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, 'Excel5');$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");$objWriter->save('php://output');exit;}else{return response()->json(['code' => 1,'msg' => '没有数据'] );}
http://www.lryc.cn/news/138702.html

相关文章:

  • Elasticsearch简介及安装
  • Python 密码破解指南:10~14
  • Spring、SpringMVC、SpringBoot三者的区别
  • 探索PDF校对:为何这是现代数字文档的关键步骤
  • linux 同时kill杀死多进程实践
  • 全流程R语言Meta分析核心技术
  • 打家劫舍00
  • ​LeetCode解法汇总1267. 统计参与通信的服务器
  • Go 语言在 Windows 上的安装及配置
  • 如何在不使用任何软件的情况下将 PDF 转换为 Excel
  • 【C语言】动态内存管理(malloc,free,calloc,realloc)-- 详解
  • adb 命令
  • Linux 进程间通信——消息队列
  • ChatGPT在智能娱乐和游戏互动中的应用如何?
  • 【Ubuntu】systemd 及其工具
  • 抖音seo矩阵系统源代码开发部署分享
  • FastJson在Java后端方面解析使用(二)
  • PyTorch深度学习实战(5)——计算机视觉基础
  • ImageReader保存图片转 opencvmat
  • 【vue3+ts项目】配置husky+配置commitlint
  • html实现iframe全屏
  • 【es6】中的Generator
  • 桥梁安全监测方法和内容是什么?
  • prometheus部署及钉钉告警集成Grafana
  • Java百度提前批面试题
  • Go语言中的Oop面向对象
  • Duplicate keys detected: ‘1‘. This may cause an update error.
  • C++(8.21)c++初步
  • 【【Verilog典型电路设计之log函数的Verilog HDL设计】】
  • 数字放大(C++)