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>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • 今天回家,婆婆和我说,小鱼儿会认识家电了。我不相信,以为婆婆在骗我。婆婆看我一脸不屑的样子,就抱着小鱼儿开始认识家...
    快快妈妈育儿说阅读 252评论 1 0
  • “加加,我是二姐呀。”一个娇滴滴的女声从手机里传出来。 我飞速地送上一句“二姐你早”,一边点下了手机的“静音”键。...
    玉初阅读 294评论 0 1
  • 加班,下雨,公交驶过,车厢被塞得满满当当,里面的人面容麻木,像没有生命的尸体。 我挤上了第三辆车。车窗上的水滴,将...
    月羊不是羊阅读 277评论 0 1
  • 五分扩展中枢,后三段划分为1分走势,下盘整完成买点,对于该走势,一买后力度较大。 九段升级走势,小级别二卖位转折,...
    OLALA66666阅读 216评论 0 0