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 discuz 主题表和回帖表的设计
Mar 13 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
php实现RSA加密类实例
Mar 26 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
php简单压缩css样式示例
Sep 22 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 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实现图片文件上传功能实例
2014/06/17 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
Canvas 绘制粒子动画背景
2017/02/15 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
vue中添加mp3音频文件的方法
2018/03/02 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python模拟登陆实现代码
2017/06/14 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
大学学生个人总结
2015/02/15 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
mysql 获取时间方式
2022/03/20 MySQL
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
springboot读取nacos配置文件
2022/05/20 Java/Android