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 easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

MySQL Workbench工具导出导入数据库方式

《MySQLWorkbench工具导出导入数据库方式》:本文主要介绍MySQLWorkbench工具导出导入数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录mysql Workbench工具导出导入数据库第一步 www.chinasem.cn数据库导出第二步

Java如何根据word模板导出数据

《Java如何根据word模板导出数据》这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... pom.XML文件导入依赖 <dependency> <groupId>cn.afterturn</groupId>

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

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