php 数据导出 Excel 表 tp3

vendor 引入 PHPExcel

下载:https://wwt.lanzoub.com/iu65L03o5b8h 密码:8zfx

第一种方法导出:

public function getEx(){
		$id = $_GET['id'];
		
        //1.查询数据库导出数据
		$list = D('policy_consult')->field(['id','title','content','name','phone','sex','addtime'])->where(['policy_id'=>$id])->select();
		
        //数据修改  可忽略
		foreach($list as $k=>&$v){
			$v['sex'] = $v['sex'] ? '女':'男';
			$v['addtime'] = date('Y-m-d h:i:s',$v['addtime']);
		}
		
		if(empty($list)){
			$this->error("未查询到导出数据",'');
		}
		
		//2.加载PHPExcle类库
        vendor('phpexcel.PHPExcel');
        //3.实例化PHPExcel类
        $objPHPExcel = new \PHPExcel();
        //4.激活当前的sheet表
        $objPHPExcel->setActiveSheetIndex(0);
        //5.设置表格头(即excel表格的第一行)
        $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1', 'id')
                ->setCellValue('B1', '咨询标题')
                ->setCellValue('C1', '咨询内容')
                ->setCellValue('D1', '姓名')
                ->setCellValue('E1', '手机号')
                ->setCellValue('F1', '性别')
                ->setCellValue('G1', '添加时间');
        //设置A列水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
                    ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置单元格宽度
        //6.循环刚取出来的数组,将数据逐一添加到excel表格。
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(50);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(30);
		
        ob_end_clean(); //!!!!!!!清除缓冲区,避免乱码
		
        for($i=0;$i<count($list);$i++){
            $objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['id']);//ID
            $objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['title']);//标签码
            $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['content']);//防伪码
            $objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['name']);//ID
            $objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['phone']);//标签码
            $objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['sex']);//ID
            $objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2),$list[$i]['addtime']);//标签码
        }
        //7.设置保存的Excel表格名称
        $filename = $club_name.'咨询名单'.date('ymd',time()).'.xls';
        //8.设置当前激活的sheet表格名称;
        $objPHPExcel->getActiveSheet()->setTitle('人员名单');
        //9.设置浏览器窗口下载表格
        header("Content-Type: application/force-download"); 
        header("Content-Type: application/octet-stream"); 
        header("Content-Type: application/download"); 
        header('Content-Disposition:inline;filename="'.$filename.'"'); 
        //生成excel文件
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        //下载文件在浏览器窗口
        $objWriter->save('php://output');
        exit;
	}

错误:

1.'break' not in the 'loop' or 'switch' context 报错

'break' not in the 'loop' or 'switch' context
错误位置
FILE: /private/var/www/backend/ThinkPHP/Library/Org/Util/PHPExcel/Calculation/Functions.php  LINE: 576

直接删除576行的 'break'即可!
原文链接:https://blog.csdn.net/neizhiwang/article/details/102994824

2.数据乱码

ob_end_clean(); //!!!!!!!清除缓冲区,避免乱码

第二种方法:

第二种属于输出的excel 样式不是很好看   但是简单不需要 PHPExcel

直接把 文件夹下的 Export.php 调用即可

public function getEx(){
		vendor("phpexcel.Export");
		$Export = new \Export();
		
		$id = $_GET['id'];
		
		$list = []; //导出数据
		
		if(empty($list)){
			$this->error("未查询到导出数据",'');
		}
		
		$Export->getExcel($list); 
		
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值