phpExecl 导出execl 表格

1:下载PHPExecl 插件

下载地址:https://download.csdn.net/download/rainredhezhang/10359499

2:放到对应的目录上,

3:写通用导出方法,

function exportexecl($data=[],$expCellName,$name="会员列表清单"){
    date_default_timezone_set('Asia/Shanghai');
    import('Vendor.Excel.PHPExcel');
    //获取数据
   
    $cellNum = count($expCellName);// 有多少列
    $dataNum = count($data);//有多少行
   
   $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=new \PHPExcel();
    $objPHPExcel->getProperties()->setCreator('http://www.jb51.net')
            ->setLastModifiedBy('http://www.jb51.net')
            ->setTitle('Office 2007 XLSX Document')
            ->setSubject('Office 2007 XLSX Document')
            ->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')
            ->setKeywords('office 2007 openxml php')
            ->setCategory('Result file');

   for($i=0;$i<$cellNum;$i++){
      $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1', $expCellName[$i][1]);
   }
   
   for($i=0;$i<$dataNum;$i++){
      for($j=0;$j<$cellNum;$j++){
         $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2), $data[$i][$expCellName[$j][0]]);
      }
   }

    $objPHPExcel->getActiveSheet()->setTitle($name);
    $objPHPExcel->setActiveSheetIndex(0);
    $filename=urlencode($name).'_'.date('Y-m-dHis');
    //*生成xls文件
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    
    $objWriter->save('php://output');

    exit;
} 

4:写数据调用方法:

public function explodetradelog(){
		$list = [['userid'=>1,'username'=>'user1'],['userid'=2,'username'=>'user2']];// 数据


                // 数据对应的表头。这里的第一个对应$list 的key值,第一个对应execl 的表头文字
		$ceilname = [
		['userid','ID'],
		['username','用户名'],
		];
                // 调用就可以了
		exportexecl($list,$ceilname,"用户信息");
}

备注:如果出现下载乱码

在方法前面加 

header("Content-type:text/html;charset=utf-8");

如果还乱码的话就在导出方法里  $objWriter->save() 前加上ob_clean();


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值