header导出Excel应用示例

   2015-11-06 0
核心提示:本文为大家介绍下使用header导出Excel,具体实现代码如下,感兴趣的朋友不要错过

复制代码 代码如下:

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

 
标签: header 导出Excel
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • nodejs 项目,请求返回Invalid Host header问题
    今天在linux上安装node,使用node做一个web服务器,在linux上安装各种依赖以后开始运行但是,出现了:Invalid Host header 的样式,在浏览器调试中发现是node返回的错误!于是就百度,最后找到了一个解决的方法,(看的别人的)。是webpack-dev-server版本
    02-09
  • nginx error_page 404 用 php header 无法跳转
    之前用Apache的时候,只需要设置ErrorDocument 404 /404.php就可以在 404.php 中根据不同的 REQUEST_URI 跳转到不同的页面去,让从搜索引擎过来的失效URL可以跳转到新的地址去升级到 nginx 后的设置error_page 404 /404.php;结果发现确实执行了 404.php ,但
    02-09
  • Asp.net页面中调用soapheader进行验证的操作步
    Asp.net页面中调用以SOAP头作验证的web services操作步骤第一步:用来作SOAP验证的类必须从SoapHeader类派生,类中Public的属性将出现在自动产生XML节点中,即:soap:HeaderUserSoapHeader xmlns="http://tempuri.org/" UserNamestring/UserName Pwdstring/Pw
    02-09
  • 使用Typescript重构axios(七)——实现基础功能:处理响应header
    使用Typescript重构axios(七)——实现基础功能
    1.使用Typescript重构axios(一)——写在最前面2.使用Typescript重构axios(二)——项目起手,跑通流程3.使用Typescript重构axios(三)——实现基础功能:处理get请求url参数4.使用Typescript重构axios(四)——实现基础功能:处理post请求参数5.使用Typescript重
    02-08
  • PHP中header用法小结
    本文实例总结了PHP中header用法。分享给大家供大家参考,具体如下:PHP 中 header()函数的作用是给客户端发送头信息。什么是头信息?这里只作简单解释,详细的自己看http协议。在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(header) 和 体
    09-08 PHP
  • header与缓冲区之间的深层次分析
    测试header之前有输出?phpecho 'hello world!';header('content-type: text/html;charset=utf-8;');我经过测试时可以成功的,不会出现任何错误和警告。不知道你们是怎么样的?可是我想大多说都是没有问题,如果出现了Cannot modify header information - headers
    09-08 PHP
  • 完美解决”Cannot modify header information
    发送头消息前不能有任何输出任何修改或者发送HTTP头的函数都必须在任何形式的输出之前被调用一些函数会修改HTTP头:header/header_removesession_start/session_regenerate_idsetcookie/setrawcookie而输出主要可能如下:隐性输出在?php之前或者?之后的空格UT
    08-30 PHPHTML
  • ASP.NET中Webservice安全 实现访问权限控制
    本文主要讲解ASP.NET中的Webservice的安全设置两种方法,一种基于soapheader,一种基于SoapExtensionAttribute,需要的朋友可以参考下。
点击排行