header导出Excel应用示例


Posted in PHP onJanuary 24, 2014
<?php 
class reportFormAction extends CommonAction{ public function index(){ 
if($_POST){ 
//@param $data array 需要导出的数据 
//@param $field string 导出csv文件的列名 
//@param $filename string 需要导出csv文件的名字 
$where = '1'; 
$order = 'creative_id desc'; 
if($_POST['crea_wh'] == 1) $order .= ""; 
if($_POST['crea_wh'] == 2) $order .= "creative_time desc"; 
$star = strtotime($_POST['control_star']); 
$end = strtotime($_POST['control_end']); 
if($star && $end) $where .= " and (create_time between $star and $end)"; 
if($_POST['creative_type'] == 1) $where .= " and creative_type =1"; 
if($_POST['creative_type'] == 2) $where .= " and creative_type =2"; 
if($_POST['creative_type'] == 3) $where .= " and creative_type =3"; 
if($_POST['sort_name'] == 1) $where .= " and sort_name = '技术类'"; 
if($_POST['sort_name'] == 2) $where .= " and sort_name = '包装类'"; 
if($_POST['sort_name'] == 3) $where .= " and sort_name = '产品类'"; 
if($_POST['sort_name'] == 4) $where .= " and sort_name = '营销类'"; 
if($_POST['sort_name'] == 5) $where .= " and sort_name = '其他类'"; 
if($_POST['two_status']==0) {$where .= " and two_status=0"; $fenlei1="一句话创意";} 
if($_POST['two_status']==1) {$where .= " and two_status=1"; $fenlei2="标准创意";} 
$csv = ''; 
$lists = M('creative')->where($where)->order($order)->select(); 
if(is_array($lists) && count($lists)>0) { 

if(empty($filename)) { 
$filename = date('Y-m-d',time()).'.csv'; 
} 
header('Content-type:application/vnd.ms-excel'); 
header('Content-Disposition:attachment;filename='.$filename); 
header('Pragma:no-cache'); 
header('Expires:0'); 
if($_POST['two_status']==0){ 
$csv= '分类,创意ID,创意类型,创意标签,创意标题,创意描述,评论数, 收藏数,投票数,提交人,作者'."\n"; 
}elseif($_POST['two_status']==1){ 
$csv= '分类,创意ID,创意类型,创意标签,创意标题,创意描述,评论数, 收藏数,投票数,提交人,作者,合作者,核心创新点说明,市场计划,已有类似商业化案例,相关专利状况,实现方式讨论,发表时间'."\n"; 
}else{ 
$csv= '分类,创意ID,创意类型,创意标签,创意标题,创意描述,评论数, 收藏数,投票数,提交人,作者,合作者,核心创新点说明,市场计划,已有类似商业化案例,相关专利状况,实现方式讨论,发表时间'."\n"; 
} 
foreach($lists as $list =>$v) { 
if($v['creative_type'] == 1){ 
$type = '问题'; 
}elseif($v['creative_type'] == 2){ 
$type = '解决方式'; 
}elseif($v['creative_type'] == 3){ 
$type = '新创意'; 
} 
if($v['two_status']==0) $fenlei="一句话创意"; 
if($v['two_status']==1) $fenlei="标准创意"; 
if($_POST['two_status']==0){ //一句话 
$csv .= $fenlei1.','.$v['creative_id'].",".$v['sort_name'].','.$type.','.$v['creative_name'].','.$v['creative_description'].','.$v['comment_num'].','.$v['collect_num'].','.$v['vote_num'].','.$v['submitter'].','.$v['author']."\n"; 
}elseif($_POST['two_status']==1){ //标准 
$csv .= $fenlei2.','.$v['creative_id'].",".$v['sort_name'].','.$type.','.$v['creative_name'].','.$v['creative_description'].','.$v['comment_num'].','.$v['collect_num'].','.$v['vote_num'].','.$v['submitter'].','.$v['author'].','.$v['collaborator'].','.$v['innovation_description'].','.$v['marketing_plan'].','.$v['business_case'].','.$v['patent_situation'].','.$v['discuss_ways'].','.strtotime($v['create_time'])."\n"; 
}else{ //全部 
$csv .= $fenlei.','.$v['creative_id'].",".$v['sort_name'].','.$type.','.$v['creative_name'].','.$v['creative_description'].','.$v['comment_num'].','.$v['collect_num'].','.$v['vote_num'].','.$v['submitter'].','.$v['author'].','.$v['collaborator'].','.$v['innovation_description'].','.$v['marketing_plan'].','.$v['business_case'].','.$v['patent_situation'].','.$v['discuss_ways'].','.strtotime($v['create_time'])."\n"; 
} 
} 
echo mb_convert_encoding($csv,"CP936","UTF-8"); 
}else{ 
$this->assign("msg",$msg); 
} 
exit; 
} 


$this->display(); 
} 

public function votecount(){ 
if($_POST){ 
//@param $data array 需要导出的数据 
//@param $field string 导出csv文件的列名 
//@param $filename string 需要导出csv文件的名字 
$where = '1'; 
if($_POST['crea_order'] == 1) $order = " c.vote_num desc"; 
$star = strtotime($_POST['control_star']); 
$end = strtotime($_POST['control_end']); 
if($star && $end) $where .= " and (c.vote_start_time between $star and $end) and (c.vote_end_time between $star and $end)"; 
$sql ="select c.sort_name,c.creative_id,c.creative_type,c.creative_name,c.creative_description,c.vote_num,c.comment_num,c.collect_num,c.create_time, u.username from cofco_creative as c left join cofco_userinfo as u on c.uid = u.uid where $where order by $order "; 
$lists = M()->query($sql); 
$csv = ''; 
if(is_array($lists) && count($lists)>0) { 

if(empty($filename)) { 
$filename = date('Y-m-d',time()).'.csv'; 
} 
header('Content-type:application/vnd.ms-excel'); 
header('Content-Disposition:attachment;filename='.$filename); 
header('Pragma:no-cache'); 
header('Expires:0'); 

$csv = '创意标签,提交者,创意分类,创意标题,创意简述,得票数,评论数, 收藏数,上传时间'."\n"; 
foreach($lists as $list =>$v) { 
if($v['creative_type'] == 1){ 
$type = '问题'; 
}elseif($v['creative_type'] == 2){ 
$type = '解决方式'; 
}elseif($v['creative_type'] == 3){ 
$type = '新创意'; 
} 
$time = date("Y-m-d H:i:s",$v['create_time']); 
$csv .= $v['sort_name'].','.$v['username'].','.$type.','.$v['creative_name'].','.$v['creative_description'].','.$v['vote_num'].','.$v['comment_num'].','.$v['collect_num'].','.$time."\n"; 
} 
echo mb_convert_encoding($csv,"CP936","UTF-8"); 
}else{ 
$this->assign("msg",$msg); 
} 
exit; 
} 
$this->display(); 
} 
} 
?>
PHP 相关文章推荐
php discuz 主题表和回帖表的设计
Mar 13 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP的博客ping服务代码
Feb 04 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
开启PHP的伪静态模式
Dec 31 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
php设计模式之单例模式代码
Jun 11 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
php显示页码分页类的封装
Jun 08 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 #PHP
测试php连接mysql是否成功的代码分享
Jan 24 #PHP
php实现邮件发送并带有附件
Jan 24 #PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 #PHP
php 发送带附件邮件示例
Jan 23 #PHP
php 获取页面中指定内容的实现类
Jan 23 #PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 #PHP
You might like
PHP日期处理函数 整型日期格式
2011/01/12 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
许愿墙中用到的函数
2006/10/07 Javascript
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
暑期社会实践感言
2014/02/25 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Redis Stream类型的使用详解
2021/11/11 Redis