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

相关文章

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

SpringBoot实现导出复杂对象到Excel文件

《SpringBoot实现导出复杂对象到Excel文件》这篇文章主要为大家详细介绍了如何使用Hutool和EasyExcel两种方式来实现在SpringBoot项目中导出复杂对象到Excel文件,需要... 在Spring Boot项目中导出复杂对象到Excel文件,可以利用Hutool或EasyExcel

Python自动化办公之合并多个Excel

《Python自动化办公之合并多个Excel》在日常的办公自动化工作中,尤其是处理大量数据时,合并多个Excel表格是一个常见且繁琐的任务,下面小编就来为大家介绍一下如何使用Python轻松实现合... 目录为什么选择 python 自动化目标使用 Python 合并多个 Excel 文件安装所需库示例代码

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.