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

相关文章

使用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(自定义资源权限规则

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i