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 相关文章推荐
php设计模式之观察者模式的应用详解
May 21 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
php微信开发之关注事件
Jun 14 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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
?算你??的 PHP 程式大小
2006/12/06 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python WEB应用部署的实现方法
2019/01/02 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
Python实现手势识别
2020/10/21 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
一套VC试题
2015/01/23 面试题
空乘英文求职信
2014/04/13 职场文书
社保转移委托书范本
2014/10/08 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
2022漫威和DC电影上映作品
2022/04/05 欧美动漫