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 date函数参数详解
Nov 27 PHP
优化PHP代码技巧的小结
Jun 02 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
php单例模式实现方法分析
Mar 14 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
实现PHP搜索加分页
Oct 12 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
Laravel ORM 数据model操作教程
Oct 21 PHP
PHP数组基本用法与知识点总结
Jun 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 和 MySQL 基础教程(一)
2006/10/09 PHP
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
深入密码加salt原理的分析
2013/06/06 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
angular *Ngif else用法详解
2020/12/15 Javascript
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Django中Middleware中的函数详解
2019/07/18 Python
python中最小二乘法详细讲解
2021/02/19 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
武汉高蓝德国际.net机试
2016/06/24 面试题
软件测试题目
2013/02/27 面试题
人事助理岗位职责
2013/11/18 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
《自然之道》教学反思
2014/02/11 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
绿色城市实施方案
2014/03/19 职场文书
生日宴会主持词
2014/03/20 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
Python基础之条件语句详解
2021/06/16 Python
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS