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执行速度全攻略(下)
Oct 09 PHP
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
php 魔术方法使用说明
Oct 20 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
php随机显示图片的简单示例
Feb 15 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
PHP引用返回用法示例
May 28 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
PHP使用Session实现上传进度功能详解
Aug 06 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的安全策略
2006/10/09 PHP
PHP一些有意思的小区别
2006/12/06 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python如何定义有可选参数的元类
2020/07/31 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
少年闰土教学反思
2014/02/22 职场文书
公司员工体检通知
2015/04/21 职场文书
原生JS实现分页
2022/04/19 Javascript
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL