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中目录,文件操作详谈
Mar 19 PHP
destoon常用的安全设置概述
Jun 21 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
php微信公众号开发之秒杀
Oct 20 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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学习笔记之数组篇
2011/06/28 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
Nginx实现反向代理
2017/09/20 Servers
php表单习惯用的正则表达式
2017/10/11 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python命令 -u参数用法解析
2019/10/24 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
大学生文员专业个人求职信范文
2014/01/05 职场文书
美术专业个人自我评价
2014/01/18 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
财务务虚会发言材料
2014/10/20 职场文书
毕业典礼致辞
2015/07/29 职场文书