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安装为Apache DSO
Oct 09 PHP
生成sessionid和随机密码的例子
Oct 09 PHP
php array的学习笔记
May 16 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
PHP中比较时间大小实例
Aug 21 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
php常用的工具开发整理
Sep 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制作新闻系统的思路
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
Django获取应用下的所有models的例子
2019/08/30 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
Django models filter筛选条件详解
2020/03/16 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
《自选商场》教学反思
2014/02/14 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android