一个网站建设爱好者,技术交流,相互学习
当前位置:首页>>程序猿
thinkphp5导出数据到excel表格
发布时间:2021-10-22 12:22:45 栏目:程序猿 阅读量:1553 作者:webcms

       我们在做数据的时候往往需要把用户提交到网站后台的数据需要导出到excel本地以便于我们统计分析数据,所以今天在这里就简单的记录一下 thinkphp5 导出数据到excel表格的这个小功能

      

首先需要下载phpexcel 库 ,把phpexcel 库放到vendor目录,如果该目录下已经有这个库就不需要了,

然后在前端模板里面只需要添加一个导出按钮: 

 导出

然后就可以在控制器直接编辑 导出方法了: 

public function daochu(){
    $alist=new  malist();
    //1.从数据库中取出数据
    $where=[
        'status' =>'1'
    ];
    //halt($where);
    $list =$alist->where($where)->order('id ASC')->select();
    //这一行是我设置的时间格式化方法,因为数据库里面插入的数据是时间戳格式,输出需要格式化,根据个人情况设置
    $list= $alist->dataformat($list);
    //halt($list);
    //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', '添加时间');
    //设置A列水平居中
    $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
        ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    //设置单元格宽度
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
    $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30);
    //6.循环刚取出来的数组,将数据逐一添加到excel表格。
    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]['name']);//姓名
        $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['tel']);//电话
        $objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['wxh']);//微信号
        $objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['xxly']);//信息来源
        $objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['time']);//添加时间
    }
    //7.设置保存的Excel表格名称
    $filename = '小程序信息'.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;
}
 

到了这里只有数据字段没有问题,应该就没有什么问题了,去执行导出数据吧! 

希望能对看这个文章的你有一点点的帮助。 


IT视频教程
Copyright © web小工匠 保留所有权利. 渝ICP备15008469号 网站地图