您的位置:首页 > 其它

header导出Excel你做过吗?

2014-01-24 11:49 190 查看
片段实用代码

$filename = './Reportable/system/Excel/'.mb_substr($_GET['dirName'],0,7).".xlsx";

header('Content-Disposition: attachment; filename='.mb_substr($_GET['dirName'],0,7).'.xlsx');

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Length: ' . filesize($filename));

header('Content-Transfer-Encoding: binary');

header('Cache-Control: must-revalidate');

header('Pragma: public');

readfile($filename);

实例:

<?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();

}

}

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: