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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
PHP针对JSON操作实例分析
Jan 12 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
浅谈PHP的反射API
Feb 26 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
基于swoole实现多人聊天室
Jun 14 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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开发文档 会员收费1期
2012/08/14 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
新鲜出炉的js tips提示效果
2011/04/03 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
vue resource发送请求的几种方式
2019/09/30 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
python实现ip查询示例
2014/03/26 Python
Python中列表(list)操作方法汇总
2014/08/18 Python
Python中多线程及程序锁浅析
2015/01/21 Python
python实现的简单猜数字游戏
2015/04/04 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
护理自荐信
2013/10/22 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
贫困证明怎么写
2015/06/16 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书