phpexcel实现数据导出

/**
* 用于生成excel文件的函数
* author:walker
* @param $data 生成excel的数据(二维数组形式)
* @param null $savefile 生成excel的文件名(保不指定,则为当前时间戳)
* @param array $title 生成excel的表头(一维数组形式)
* @param string $sheetname 生成excel的sheet名称(缺省为sheet1)
* @param string $isfirst 生成excel的setActiveSheetIndex(活动单元)
*/

/*自定义导出函数*/

function exportExcel($data,$title=array(),$savefile='',$sheetname='sheet1',$isfirst=1){
//若没有指定文件名则为当前时间戳
$savefile.=date('Y-m-d');
Vendor('PHPExcel');
import('PHPExcel.IOFactory');
Vendor('PHPExcel.PHPExcel.Reader.Excel5');
$objPHPExcel = new \PHPExcel();
$nn=0;$row=1;//行
foreach($title as $k=>$r){
$col=chr(65+$nn);//列
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($col.$row,$r);//列,行,值
$nn++;

}
$field = array_keys($title);$num = count($data);$fieldnum = count($title);

//Excel内容
for($i=0;$i<$num;$i++){
for($j=0;$j<$fieldnum;$j++){
$col=chr(65+$j);//列
$objPHPExcel->getActiveSheet(0)->setCellValue($col.($i+2),' '.$data[$i][$field[$j]]);
}
}
$objPHPExcel->getActiveSheet()->setTitle($sheetname);
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$savefile.'.xls"');
header('Cache-Control: max-age=0');
$obj = new \PHPExcel_IOFactory();
$objWriter = $obj->createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}

//调用导出函数

$data = M('member')->field('nickname,country,province,city')->select();
$title = array('nickname'=>'昵称',
'country'=>'国家',
'province'=>'省',
'city'=>'市');
$savefile = '会员信息';
exportExcel($data,$title,$savefile);

 

转载于:https://www.cnblogs.com/lsbaiwyl/p/8397823.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值