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
php正则表达匹配中文问题分析小结
Mar 25 PHP
php提示undefined index的几种解决方法
May 21 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 PHP
零基础php编程好学吗
Oct 11 PHP
php png失真的原因及解决办法
Oct 24 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/07/17 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
django初始化数据库的实例
2018/05/27 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
python的Jenkins接口调用方式
2020/05/12 Python
中专自我鉴定范文
2013/10/16 职场文书
护士求职推荐信范文
2013/11/23 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
法学院毕业生求职信
2014/06/25 职场文书
2014年项目工作总结
2014/11/24 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS