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缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
PHP、Java des加密解密实例
Apr 27 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
PHP预定义接口――Iterator用法示例
Jun 05 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
PHP基本语法
Mar 31 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
ThinkPHP之import方法实例详解
2014/06/20 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
删除重复数据的算法
2006/11/23 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
python实现邮件发送功能
2019/08/10 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
推广普通话标语
2014/06/27 职场文书
文员求职信
2014/07/15 职场文书
2014年民政工作总结
2014/11/26 职场文书
英语读书笔记
2015/07/02 职场文书
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
使用tensorflow 实现反向传播求导
2021/05/26 Python