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音乐采集(部分代码)
Feb 14 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
smarty简单入门实例
Nov 28 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP微信支付开发实例
Jun 22 PHP
php 基础函数
Feb 10 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 PHP
php微信公众号开发之简答题
Oct 20 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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
js动态生成指定行数的表格
2013/07/11 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
保时捷设计:Porsche Design
2019/03/30 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
迅雷Cued工作心得体会
2014/01/27 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2015年药房工作总结
2015/04/25 职场文书
经销商会议开幕词
2016/03/04 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript