根据multiselect选择的字段导出csv

接上一篇  multiselect操作多选列表框,自由选择想导出的字段后,正式开始导出csv


前台form表单:

 <form method="post" action="{:U('Admission/doExportCsv')}" id="mainForm" enctype="multipart/form-data">
	<label for="item">导出项选择</label>
	<select multiple="multiple" id="my-select" name="select[]">
		<volist name="fieldList" id="fl">
			<option value="{$fl.code}">{$fl.name}</option>
		</volist>
	</select>					
        <input class="button" type="submit" name="submit" value="提交"/>						
</form>

php接收:

public function doExportCsv(){
        set_time_limit(60); //时间限制
        ini_set("memory_limit","256M"); //文件大小限制
		
        $selectField = I('post.select');
        $fieldList = M('Field')->field('code,name')->select(); //考生所有字段
        foreach ($fieldList as $k => $v){
            for ($i=0;$i<count($selectField);$i++){
                if ($selectField[$i] == $v['code']){
                    $export_field_name[] = $v['name'];
                }
            }
        }
        $info = $this->dao->select();
        $str = implode(',',$export_field_name) . "\n"; //指定导出的字段名称
        //$str = "考生号,准考证号,姓名,性别等等\n";
        $str = iconv('utf-8','gb2312',$str);

        foreach($info as $key => $value){
            $csv['ksh'] = iconv('utf-8','gb2312',"\t".$value['ksh']);
            $csv['sfzh'] = iconv('utf-8','gb2312',"\t".$value['sfzh']);
            if($value['xbdm'] == 1){
                $csv['xbdm'] = iconv('utf-8','gb2312','男');
            }else{
                $csv['xbdm'] = iconv('utf-8','gb2312','女');
            }
            $csv['xm'] = iconv('utf-8','gbk',$value['xm']); //中文转码
			/*
				*
				* 处理过的全部考生字段
				*
			*/
            for ($i=0;$i<count($selectField);$i++){
                $str .= '"'.$csv[$selectField[$i]].'"'.","; //循环接收过来的字段
            }
            $str =rtrim($str,",")."\n";
            //$str .= $csv['ksh'].",".$csv['zkzh'].",".$csv['xm'].",".$csv['gender'].",".$csv['birthday'].",".$csv['zzmm'].",".$csv['mz'].",".$csv['kslx'].",".$csv['kl'].",".$csv['kslb'].",".$csv['bylb'].",".$csv['zxdm'].",".$csv['zxmc'].",".$csv['ysjzdm'].",".$csv['wyyz'].",".$csv['bmdw'].",".$csv['kstz'].",".$csv['dqdm'].",".$csv['zjlx'].",".$csv['sfzh'].",".$csv['jtdz'].",".$csv['yzbm'].",".$csv['lxsj'].",".$csv['lxdh'].",".$csv['sjr'].",".$csv['kstc'].",".$csv['ksjlhcf'].",".$csv['zsyj'].",".$csv['sxpdkhyj'].",".$csv['xkkm'].",".$csv['skkm'].",".$csv['xjh'].",".$csv['wyks'].",".$csv['wytl'].",".$csv['tdpc'].",".$csv['tddw'].",".$csv['jhxz'].",".$csv['cj'].",".$csv['tzcj'].",".$csv['tdcj'].",".$csv['zgf'].",".$csv['yxdrcj'].",".$csv['lqzy'].",".$csv['tdyy'].",".$csv['bz'].",".$csv['zyhg'].",".$csv['tjhg'].",".$csv['lqfs'].",".$csv['kszt'].",".$csv['sdbz'].",".$csv['zytz'].",".$csv['tjjldm'].",".$csv['kslsczbz'].",".$csv['year'].",".$csv['provinceid'].",".$csv['pc'].",".$csv['iscabin'].",".$csv['create_time'].",".$csv['update_time']."\n"; //用引文逗号分开
            unset($csv);
        }

        $filename = 'Admission_'.date('Y-m-d',time()).'.csv'; //设置文件名
        self::exportCsv($filename,$str); //导出
        exit;
}
protected function exportCsv($filename,$data) {
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo $data;
}



一个每天吃超过十块钱盖饭都要思索半天
却始终心系宇宙从哪来到哪去的普普通程序员
2017.10.23

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值