接上一篇 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

1565

被折叠的 条评论
为什么被折叠?



