1.导出excel表格
第一步 引入PHPExcel 放到这个文件夹下
D:\wamp\www\new\boss\ThinkPHP\Library\Org\Util
第二步 在公共的控制器中写导出的方法,如果要是用import引入phpexcel ,必须用namespace,例如useOrg\Util\PHPExcel; 在声明phpExcel()类时,必须要加 \ ,例如$objPHPExcel=new\PHPExcel();在最后的PHPExcel_IOFactory前方也要加 \ ;
public functionexportExcel($expTitle,$expCellName,$expTableData){
$xlsTitle=iconv('utf-8','gb2312',$expTitle);//文件名称
$fileName=$_SESSION['account'].date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
$cellNum=count($expCellName);
$dataNum=count($expTableData);
import("Org.Util.PHPExcel");
$objPHPExcel=new\PHPExcel();
$cellName=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
// $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2',$expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),$expTableData[$i][$expCellName[$j][0]]);
}
}
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter= \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');
exit;
}
第三步:在相对应的控制器中写要导出的数据 并且调用公共方法exportExcel();
functionexpUser(){//导出Excel
$xlsName="User";
$xlsCell=array(
array('id','序号'),
array('phone','手机号'),
array('appTitle','应用名称'),
array('appId','appid'),
array('appSecret','应用秘钥'),
array('packageName','应用包名'),
array('type','审核状态'),
array('isdel','是否删除'),
array('channel','是否开通渠道号'),
array('createTime','创建时间'),
);
$data= D("Sdkapp")->allData();
foreach($dataas$k=>$v)
{
$data[$k]['type']=$v['type']==0?'通过':'未通过';
$data[$k]['isdel']=$v['isdel']==1?'未删除':'已删除';
$data[$k]['channel']=$v['channel']==2?'已开通':'未开通';
$data[$k]['createTime']=date("Y-m-d H:i:s",$v['createTime']);
}
$this->exportExcel($xlsName,$xlsCell,$data);
}
最后 在页面中用a标签调用导出方法
<ahref="/Home/sdkuser/expUser">导出a>
网友评论