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生成自己的LOG文件
Oct 09 PHP
屏蔽浏览器缓存另类方法
Oct 09 PHP
php session安全问题分析
Jun 24 PHP
php格式化日期实例分析
Nov 12 PHP
19个Android常用工具类汇总
Dec 30 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
orm获取关联表里的属性值
Apr 17 PHP
php中array_column函数简单实现方法
Jul 11 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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源码之 ext/mysql扩展部分
2009/07/17 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
php header功能的使用
2013/10/28 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
实现vuex原理的示例
2020/10/21 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
详解Python中heapq模块的用法
2016/06/28 Python
Python 异常处理的实例详解
2017/09/11 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python每天定时运行某程序代码
2019/08/16 Python
tensorflow 实现数据类型转换
2020/02/17 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Python logging模块handlers用法详解
2020/08/14 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
华为python面试题
2016/05/03 面试题
社区七一党员活动方案
2014/01/25 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
公司慰问信范文
2015/03/23 职场文书
小学班级管理心得体会
2016/01/07 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书