YII中整合PHPEXCEL进行数据导出功能
来源:互联网 发布:java宿舍管理系统 编辑:程序博客网 时间:2024/04/28 16:37
在做WEB管理后台的时候,如果涉及到某些特殊数据需要导出进行核算的时候,这个时候就需要进行EXCEL数据导出,目前比较强大的PHPEXCEL导出类可以满足需求,首先需要下载最新的PHPEXCEL类包,这个可以到官网进行下载,解压后将整个解压包放置如下位置:
配置好后,需要在Controller.php中扩展PHPEXCEL导出方法,方便日常生活中经常使用。
打开Controller.php(该文件位于如下图所示的文件夹内):
在该文件中增加如下所示的PHPEXCEL导出方法:
/** * @todo export data as excel * @param array $excel_content = array(array('sheet_name' => '测试1','sheet_title' => array('姓名','性别','年龄'),'ceils' => array(array('张三', '男', '25'),array('李四', '男', '23'),array('王五', '男', '30'),)),array('sheet_name' => '测试2','sheet_title' => array('姓名','性别','年龄'),'ceils' => array(array('张三', '男', '25'),array('李四', '男', '23'),array('王五', '男', '30'),)),); * @param string $excel_file 文件名称 * @param array $excel_props EXCEL属性 * @return file download */public function exportExcel( $excel_content, $excel_file, $excel_props=array('creator'=>'GGBOUND', 'title'=>'EXPORT EXCEL', 'subject'=>'EXPORT EXCEL', 'desc'=>'EXPORT EXCEL', 'keywords'=>'EXPORT EXCEL', 'category'=>'EXPORT EXCEL')){if (!is_array($excel_content)){return FALSE;}//PHPEXCEL包路径$phpExcelPath=Yii::app() -> request -> baseUrl.'/protected/extensions/phpexcel/';spl_autoload_unregister(array('YiiBase','autoload'));//取消YII自动加载include($phpExcelPath . 'PHPExcel.php');//引入PHPEXCEL类//设置文档基本属性$objPHPExcel = new PHPExcel();$objProps = $objPHPExcel -> getProperties();$objProps->setCreator($excel_props['creator']);$objProps->setLastModifiedBy($excel_props['creator']);$objProps->setTitle($excel_props['title']);$objProps->setSubject($excel_props['subject']);$objProps->setDescription($excel_props['desc']);$objProps->setKeywords($excel_props['keywords']);$objProps->setCategory($excel_props['category']);//开始执行EXCEL数据导出for ($i=0;$i<count($excel_content);$i++){$each_sheet_content = $excel_content[$i];if ($i==0){//默认会创建一个sheet页,故不需在创建$objPHPExcel -> setActiveSheetIndex(intval(0));$current_sheet = $objPHPExcel -> getActiveSheet();}else{//创建sheet$objPHPExcel -> createSheet();$current_sheet = $objPHPExcel -> getSheet($i);}//设置sheet title$current_sheet -> setTitle( $each_sheet_content['sheet_name'] );//设置sheet当前页的标题if (array_key_exists('sheet_title', $each_sheet_content) && !empty($each_sheet_content['sheet_title'])){for($j=0; $j<count($each_sheet_content['sheet_title']); $j++){$current_sheet->setCellValueByColumnAndRow($j, 1, $each_sheet_content['sheet_title'][$j]);}}//写入sheet页面内容if(array_key_exists('ceils', $each_sheet_content) && !empty($each_sheet_content['ceils'])){for($k=0; $k<count($each_sheet_content['ceils']); $k++){for($l=0; $l<count($each_sheet_content['ceils'][$k]); $l++){$current_sheet->setCellValueByColumnAndRow($l, $k+2, $each_sheet_content['ceils'][$k][$l]);}}}}//生成EXCEL并下载header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$excel_file.'-'.date('Y-m-d-H-i-s').'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output');//自动下载 Yii::app()->end(); //恢复Yii自动加载功能 spl_autoload_register(array('YiiBase','autoload'));}
该类自动生成EXCEL文件并下载,下面附带导出功能的测试代码:
//数据库导出为EXCEL示例 $siteDb = new SiteModel(); $return =$siteDb -> testMysql(); $excel_data = $this -> excelDataFormat($return);//此处使用了上篇文章中说道的数据格式化类 $excel_title = $excel_data['excel_title']; $excel_ceils = $excel_data['excel_ceils']; $excel_content = array(array('sheet_name' => '测试1','sheet_title' => $excel_title ,'ceils' => $excel_ceils ,),array('sheet_name' => '测试2','sheet_title' => $excel_title ,'ceils' => $excel_ceils ,), ); $excel_file='test'; $this->exportExcel($excel_content, $excel_file);到此简单的PHPEXCEL导出类整合进入YII就完成了。
0 0
- YII中整合PHPEXCEL进行数据导出功能
- YII中整合PHPEXCEL进行数据导入MYSQL数据库
- yii phpexcel 导入数据和导出数据
- 利用phpExcel进行数据导出
- YII中使用PHPExcel导入导出
- Yii中使用PHPExcel导出Excel
- 在Yii框架中使用PHPExcel扩展从数据库导出excel文件功能的实现
- 在YII中使用PHPExcel扩展导出数据到EXCEL中
- thinkphp5整合phpexcel 数据导入导出操作
- Yii框架中使用PHPExcel导出Excel文件
- Yii框架中使用PHPExcel导出Excel文件
- Yii框架中使用PHPExcel导出Excel文件
- Yii::2.0使用PHPExcel导出
- yii中使用phpexcel
- thinkphp中使用PHPExcel导出数据
- yii 中导出excel数据
- Yii中使用PHPexcel获取excel中数据
- ThinkPHP + PHPExcel 导出数据
- Linux下TTY与PTY的区别
- wince GPIO 学习
- PHP中替换键名的简易方法
- union关键字
- 关于sqlserver中的pivot和 unpivot
- YII中整合PHPEXCEL进行数据导出功能
- android下Bitmap和base64之间的转换
- Objective-C、C++以及C之间的区别
- 机器视觉LED光源 选择
- 泛型(2)_适配器
- YII中整合PHPEXCEL进行数据导入MYSQL数据库
- ghost系统无法启动
- PHP中实现常用邮箱的判断
- 使用maven下载jar包,使用ant打包。yqxt项目的安装。