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学习教程之第2天
Jun 15 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
10款实用的PHP开源工具
Oct 23 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
PHP CURL使用详解
Mar 21 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
php使用redis的几种常见操作方式和用法示例
Feb 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
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
Python写的一个简单DNS服务器实例
2014/06/04 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
python抖音表白程序源代码
2019/04/07 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Django 实现图片上传和下载功能
2020/12/31 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
SQL中where和having的区别
2012/06/17 面试题
北大青鸟学生求职信
2013/09/24 职场文书
计算机开发个人求职信范文
2013/09/26 职场文书
体育老师的教学自我评价分享
2013/11/19 职场文书
会计应聘求职信范文
2013/12/17 职场文书
认购协议书范本
2014/04/22 职场文书
班主任经验交流材料
2014/12/16 职场文书
求职自我评价范文
2015/03/09 职场文书
小学教师见习总结
2015/06/23 职场文书
早恋主题班会
2015/08/14 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书