thinkPHP 框架下 导出excel

本文介绍了一种使用PHP导出Excel文件的方法,并提供了详细的代码示例。通过此方法,可以轻松地将数据库中的数据导出为Excel表格,适用于各种场景如活动抽奖结果的导出等。
public function exportSN(){
       
		//$objReader = PHPExcel_IOFactory::createReader('Excel5');
		header("Content-Type: text/html; charset=utf-8");
		header("Content-type:application/vnd.ms-execl");
		header("Content-Disposition:filename=汇总.xls");
        
		//   以下\t代表横向跨越一格,\n 代表跳到下一行,可以根据自己的要求,增加相应的输出相,要和循环中的对应哈
		//字段
		$letterArr=explode(',',strtoupper('a,b,c,d,e,f,g'));
		$arr=array(
    		array('en'=>'sn','cn'=>'SN码(中奖号)'),
    		array('en'=>'prize','cn'=>'奖项'),
    		array('en'=>'sendstutas','cn'=>'是否已发奖品'),
    		array('en'=>'sntime','cn'=>'奖品发送时间'),
    		array('en'=>'openid','cn'=>'openid'),
    		array('en'=>'name','cn'=>'中奖者微信码'),
    		array('en'=>'prizedate','cn'=>'中奖时间'),
		);
		$chengItem=array('piaomianjia','shuifei','yingshoujine','yingfupiaomianjia','yingfushuifei','yingfujine','dailishouru','fandian','jichangjianshefei','ranyoufei');

		$i=0;
		$fieldCount=count($arr);
		$s=0;
		//thead
		foreach ($arr as $f){
			if ($s<$fieldCount-1){
			    echo $f['cn']."\t";
				// echo iconv('gbk','utf-8',$f['cn'])."\t";//thinkphp无需转utf-8
			}else {
			    echo $f['cn']."\n";
// 				echo iconv('gbk','utf-8',$f['cn'])."\n";
			}
				
			$s++;
		}
	
		$db=M('AddonAutumns_box');
		$id=intval($_GET['id']);
		$sns=$db->where(array('bid'=>$id,'isprize'=>1))->order('id ASC')->select();
		if ($sns){
			
			foreach($sns as $key=>$val){
			$user =  M('User')->where(array('openid'=>$val['wecha_id']))->field('username,openid')->find();
				$sns[$key]['openid'] = $user['openid'];
				$sns[$key]['name'] = $user['username'];
			}
			foreach ($sns as $sn){
				$j=0;
				foreach ($arr as $field){
					$fieldValue=$sn[$field['en']];
					switch ($field['en']){
						default:
							break;
						case 'time':
						case 'sntime':
							if ($fieldValue){
								$fieldValue=date('Y-m-d H:i:s',$fieldValue);
							}else {
								$fieldValue='';
							}
							break;
						case 'name':
						case 'prize':
				// 			$fieldValue=iconv('gbk','utf-8',$fieldValue);
							break;
					}
					if ($j<$fieldCount-1){
					    
						echo $fieldValue."\t";
					}else {
						echo $fieldValue."\n";
					}
					$j++;
				}
				$i++;
			}
		}
	
		exit();
	}

 

转载于:https://my.oschina.net/u/2433463/blog/759660

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值