phpexcel 简单导出多个sheet

2024-06-05 16:38

本文主要是介绍phpexcel 简单导出多个sheet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

public function exportExcel(){require_once 'include/PHPExcel.php';$objPHPExcel = new PHPExcel(); 		//实例化Excel类//第一个sheet填入主标题$first_sheet_title = '入职';$objPHPExcel->getActiveSheet()->setCellValue('A1', $title.$first_sheet_title);//合并单元格$objPHPExcel->getActiveSheet()->mergeCells('A1:D1');//设置居中$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置单元格宽$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(6);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);//字体加粗$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('C2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('D2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('E2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗//第一sheet入职$array = array(array("序号","部门","职位","姓名",'入职时间'),);$field = "id,department,post_title,real_name,CONCAT(entry_date_Y,'-',entry_date_M,'-',entry_date_D) as date";//入职人员:入职时间+3个月时间 > 当前时间$thirty_month = 3*30*24*3600;$where = " unix_timestamp(now()) < UNIX_TIMESTAMP(CONCAT(entry_date_Y,'-',entry_date_M,'-',entry_date_D))+$thirty_month ".$where_1;$array1 = M('files')->field($field)->where($where)->select();$data = array();if(is_array($array1)){foreach($array1 as $key=>$value){$data[$key][]=$value['id'];$data[$key][]=$value['department'];$data[$key][]=$value['post_title'];$data[$key][]=$value['real_name'];$data[$key][]=$value['date'];}}//合并title$new_arr = array_merge($array,$data);//写入到第一个sheet$k = 1;foreach ($new_arr as $val){$k = $k+1;$objPHPExcel->getactivesheet()->setcellvalue('A'.$k, $val[0]);//第A列 第$k行  $objPHPExcel->getactivesheet()->setcellvalue('B'.$k, $val[1]);$objPHPExcel->getactivesheet()->setcellvalue('C'.$k, $val[3]);$objPHPExcel->getactivesheet()->setcellvalue('D'.$k, $val[4]);$objPHPExcel->getactivesheet()->setcellvalue('E'.$k, $val[5]);}/*保存到第一个sheet*/$objPHPExcel->getActiveSheet()->setTitle($first_sheet_title);// Set active sheet index to the first sheet, so Excel opens this as the first sheet$objPHPExcel->setActiveSheetIndex(0);//第一sheet入职 -end//第二sheet转正$objPHPExcel->createSheet();$objPHPExcel->setActiveSheetIndex(1);$second = 1;$sheet_title = '转正';$A1_title = $title;$A2_title = array(array("序号","部门","职位","姓名",'入职时间','转正时间'),);$where  = 'transfer_type = 6';$where .= $where_2;$this->makeData($objPHPExcel,$second,$sheet_title,$A1_title,$A2_title,$where);//写入到第二个sheet-end//最后通过浏览器输出$fn = getUniName()."导出信息.xls"; header('Content-Type: application/vnd.ms-excel; charset=utf-8');header("Content-Disposition: attachment;filename=$fn");header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;
}/** 封装* @ $objPHPExcel 	phpexcel 对象* @ $num  int		 第n个工作空间* @ $sheet_title	 工作空间sheet名称* @ param string   $A1_title 大标题* @ param array    $A2_title 每个字段名* @ where sting or array 查询的条件* @ return true or false;*/
protected  function makeData($objPHPExcel,$num,$sheet_title,$A1_title,$A2_title,$where){$objPHPExcel->createSheet();$objPHPExcel->setActiveSheetIndex($num);$objPHPExcel->getActiveSheet()->setCellValue('A1', $A1_title);//合并单元格$objPHPExcel->getActiveSheet()->mergeCells('A1:F1');//设置居中$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//设置单元格宽$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(6);$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);//字体加粗$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('A2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('C2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('D2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('E2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$objPHPExcel->getActiveSheet()->getStyle('F2')->getFont()->setName('宋体') //字体->setBold(true); //字体加粗$field = "id,department_at,post_title_at,real_name,CONCAT(entry_date_Y,'-',entry_date_M,'-',entry_date_D) date_1,CONCAT(effective_date_Y,'-',effective_date_M,'-',effective_date_D) date_2";// transfer_type 调动类型,1为调岗,2为晋升,3为加薪,4为降职,5为离职,6为转正$array_3 = M('fer')->field($field)->where($where)->select();$data = array();if(is_array($array_3)){foreach($array_3 as $key=>$value){$data[$key][]=$value['id'];$data[$key][]=$value['department'];$data[$key][]=$value['post_title'];$data[$key][]=$value['real_name'];$data[$key][]=$value['date_1'];$data[$key][]=$value['date_2'];}}$new_arr = array_merge($A2_title,$data);//写入到第n个sheet$i = 1;foreach ($new_arr as $val){$i = $i+1;$objPHPExcel->getactivesheet()->setcellvalue('A'.$i, $val[0]);//第A列 第$k行$objPHPExcel->getactivesheet()->setcellvalue('B'.$i, $val[1]);$objPHPExcel->getactivesheet()->setcellvalue('C'.$i, $val[2]);$objPHPExcel->getactivesheet()->setcellvalue('D'.$i, $val[3]);$objPHPExcel->getactivesheet()->setcellvalue('E'.$i, $val[4]);$objPHPExcel->getactivesheet()->setcellvalue('F'.$i, $val[5]);}$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,"Excel2007");/*保存到本地*/$objPHPExcel->getActiveSheet()->setTitle($sheet_title);return true;
}
拓展:
http://www.thinkphp.cn/topic/3739.html
http://www.thinkphp.cn/code/1893.html

这篇关于phpexcel 简单导出多个sheet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033602

相关文章

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则