当前位置: 首页 > 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' => '没有数据'] );}

相关文章:

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->beg…...

Elasticsearch简介及安装

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

Python 密码破解指南:10~14

协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神,试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 十、加…...

Spring、SpringMVC、SpringBoot三者的区别

目录 Spring是什么? SpringMVC是什么? SpringBoot是什么? Spring、SpringMVC、SpringBoot三者之间的关系 Spring是什么? Spring是一个开源的应用程序框架,它提供了一种简易的开发方式,通过依赖注入和面…...

探索PDF校对:为何这是现代数字文档的关键步骤

在今日的数字化浪潮中,文档的创建与分享从未如此频繁。尤其是PDF,作为一个普遍接受的标准文件格式,其在企业、学术和日常生活中的应用已经无处不在。但随之而来的挑战是如何确保文档的准确性和专业性。让我们深入探索PDF校对的重要性以及它为…...

linux 同时kill杀死多进程实践

使用场景 当程序中有使用到多进程且进程数较多的情况,如下图,且需要通过控制台杀死所有的 GSM_run.py 的进程时,利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的,这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…...

全流程R语言Meta分析核心技术

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…...

打家劫舍00

题目链接 打家劫舍 题目描述 注意点 如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警0 < nums[i] < 400 解答思路 最初想的是使用深度优先遍历&#xff0c;到达任意一个位置时&#xff0c;小偷想要偷窃最高金额&#xff0c;一定要选择后面第2个房…...

​LeetCode解法汇总1267. 统计参与通信的服务器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 这里有一幅…...

Go 语言在 Windows 上的安装及配置

1. Go语言的下载 Golang官网&#xff1a;All releases - The Go Programming Language Golang中文网&#xff1a;Go下载 - Go语言中文网 - Golang中文社区 两个网站打开的内容只有语言不同而已&#xff0c;网站上清晰的标注了不同操作系统需要对应安装哪个版本&#xff0c;其中…...

如何在不使用任何软件的情况下将 PDF 转换为 Excel

通常&#xff0c;您可能会遇到这样的情况&#xff1a;您需要的数据不在 Excel 工作表中&#xff0c;而是以数据表形式出现在 PDF 文件中。为了将此数据放入 Excel 工作表中&#xff0c;如果您尝试将数字复制并粘贴到电子表格中&#xff0c;则列/行将无法正确复制和对齐。因此&a…...

【C语言】动态内存管理(malloc,free,calloc,realloc)-- 详解

一、动态内存分配 定义&#xff1a;动态内存分配 (Dynamic Memory Allocation) 就是指在程序执行的过程中&#xff0c;动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样&#xff0c;需要预先分配存储空间&#xff0c;而是由系统根据程…...

adb 命令

1.adb shell dumpsys activity top | find "ACTIVITY" 查看当前运行的activity包名 2.adb shell am start -n 包名/页面名 打开应用的页面 3.查看将要启动或退出app的包名 adb shell am monitor 只有在启动或退出的时候才会打印 4.查看当前启动应用的包名 ad…...

Linux 进程间通信——消息队列

一、消息队列的原理 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型&#xff0c;接收进程可以独立接收含有不同类型值得数据库。 消息实际上是一个数据块&#xff0c;这个数据块是一个结构体&#xff0c;结构体由自己命名。消…...

ChatGPT在智能娱乐和游戏互动中的应用如何?

在智能娱乐和游戏互动领域&#xff0c;ChatGPT具有广泛的应用潜力&#xff0c;可以为用户带来更丰富、个性化和有趣的体验。从虚拟角色和游戏情节到实时互动和玩家支持&#xff0c;ChatGPT可以在多个方面为游戏产业带来创新和改变。 **1. **虚拟角色和NPC互动**&#xff1a;Ch…...

【Ubuntu】systemd 及其工具

什么是 systemd systemd 是一个用于管理 Linux 系统启动过程和系统服务的初始化系统。它是现代 Linux 发行版中广泛采用的初始化系统&#xff0c;负责启动和管理操作系统的各个组件。 systemd 的设计目标是提高系统启动速度、优化资源管理和提供更强大的服务管理功能。它引入…...

抖音seo矩阵系统源代码开发部署分享

一、 开发步骤分享 抖音SEO矩阵系统源代码开发部署分享&#xff0c;需要经验丰富的开发人员和服务器管理人员&#xff0c;以下是大致的步骤&#xff1a; 确定你需要的功能和设计&#xff0c;确定开发人员和设计师的角色和任务分配&#xff0c;以及开发进度和计划。 确定服务器…...

FastJson在Java后端方面解析使用(二)

​ JSON现在常用来做前后端数据交互&#xff0c;两个蝴蝶飞只是简单的对JSON做一下讲解和简单使用。关于JSON,我还了解的远远不够。由于本人经验有限&#xff0c;嘴皮子不溜&#xff0c;所以学术性&#xff0c;概念性&#xff0c;底层性的知识点暂时不做介绍。文章中有错误之处…...

PyTorch深度学习实战(5)——计算机视觉基础

PyTorch深度学习实战(5)——计算机视觉基础 0. 前言1. 图像表示2. 将图像转换为结构化数组2.1 灰度图像表示2.2 彩色图像表示3 利用神经网络进行图像分析的优势小结系列链接0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析,利用计算机算法和方法,使计算机…...

ImageReader保存图片转 opencvmat

目录 ImageReader 直接保存图片&#xff0c;没成功&#xff0c;格式是yuv420&#xff0c;需要转换 转opencv nv21保存图片&#xff0c;测试ok rgb888 data保存图片&#xff1a; ImageReader 直接保存图片&#xff0c;没成功&#xff0c;格式是yuv420&#xff0c;需要转换 …...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...