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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
基于php下载文件的详解
Jun 02 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php时区转换转换函数
Jan 07 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP微信红包生成代码分享
Oct 06 PHP
多个Laravel项目如何共用migrations详解
Sep 25 PHP
TP5框架页面跳转样式操作示例
Apr 05 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生成xml简单实例代码
2009/12/16 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
js读写json文件实例代码
2014/10/21 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
javascript随机变色实例代码
2019/10/15 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
Python简单进程锁代码实例
2015/04/27 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Python实现常见的回文字符串算法
2018/11/14 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
Python多进程编程常用方法解析
2020/03/26 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
期末自我鉴定
2014/02/02 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技