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 相关文章推荐
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
php HandlerSocket的使用
May 02 PHP
Admin generator, filters and I18n
Oct 06 PHP
php跨域cookie共享使用方法
Feb 20 PHP
php反射应用示例
Feb 25 PHP
PHP制作万年历
Jan 07 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
pandas值替换方法
2018/07/10 Python
python3人脸识别的两种方法
2019/04/25 Python
python asyncio 协程库的使用
2021/01/21 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
高一生物教学反思
2014/01/17 职场文书
省三好学生申请材料
2014/01/22 职场文书
中秋寄语大全
2014/04/11 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
办公室岗位职责
2015/02/04 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书