Yii Framework框架使用PHPExcel组件的方法示例


Posted in PHP onJuly 24, 2019

本文实例讲述了Yii Framework框架使用PHPExcel组件的方法。分享给大家供大家参考,具体如下:

PHPExcel下载地址http://www.yiiframework.com/extension/phpexcel

将下载的PHPExcel压缩包解压到Yii Framework目录framework\vendors下

代码如下

/**
* 将数据导出到Excel
*/
public function actionExport()
{
    //取要导出到Excel的数据
    $criteria = $this->_getCriteria();
    $data = Statistics::model()->findAll($criteria);
    // 获取PHPExcel引用路径
    $phpExcelPath = Yii::getPathOfAlias('system.vendors');
    // 关闭YII的自动加载功能,改用手动加载,否则会出错,PHPExcel有自己的自动加载功能
    // YII框架对于组件的自动加载,要求类名与文件名一致;
    // 而PHPExcel类对应的文件名包含了上级目录名称,如:IOFactory类对应的文件名为PHPExcel_IOFactory.php
    spl_autoload_unregister(array('YiiBase','autoload'));
    include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php');
    //下面是Excel数据导出处理逻辑
    $objPHPExcel = PHPExcel_IOFactory::load('./content/template/report.xlsx');
    $objPHPExcel->getProperties()->setCreator("Kalman")
    ->setTitle("统计报表")
    ->setSubject("统计报表")
    ->setDescription("统计报表");
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Hello')
    ->setCellValue('B2', 'world!')
    ->setCellValue('C1', 'Hello')
    ->setCellValue('D2', 'world!');
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A25', '123456');
    $objPHPExcel->getActiveSheet()->setTitle('report');
    // Excel打开后显示的工作表
    $objPHPExcel->setActiveSheetIndex(0);
    //通浏览器输出Excel报表
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="report.xlsx"');
    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'));
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
php对称加密算法示例
May 07 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
php导出生成word的方法
Dec 25 PHP
YII2框架中excel表格导出的方法详解
Jul 21 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
asp.net和php的区别点总结
Oct 10 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 #PHP
PHP容器类的两种实现方式示例
Jul 24 #PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 #PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 #PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 #PHP
PHP中__set()实例用法和基础讲解
Jul 23 #PHP
PHP大文件分块上传功能实例详解
Jul 22 #PHP
You might like
一个好用的分页函数
2006/11/16 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
python将html转成PDF的实现代码(包含中文)
2013/03/04 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
Python类的动态绑定实现原理
2020/03/21 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
python爬虫请求头的使用
2020/12/01 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
好的演讲稿开场白
2013/12/30 职场文书
远程教育心得体会
2014/01/03 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
观后感开头
2015/06/19 职场文书
教师师德工作总结2015
2015/07/22 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
警用民用对讲机找不同
2022/02/18 无线电
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫