thinkphp导入导出excel

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>

你可能感兴趣的:(thinkphp导入导出excel)