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 相关文章推荐
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
php字符串的替换,分割和连接方法
May 23 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP快速推送微信模板消息
Apr 14 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
Convert Seconds To Hours
2007/06/16 Javascript
syntaxhighlighter 使用方法
2007/07/02 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
电脑教师的自我评价
2013/12/18 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
社区文艺活动方案
2014/08/19 职场文书
利用js实现简单开关灯代码
2021/11/23 Javascript
vue实现简易音乐播放器
2022/08/14 Vue.js