PHPExcel --- 不止是强大 导出

一、前期准备工作

前期准备工作可以看看PHPExcel导入的准备,另外导出需要准备一个数据列表页面,一张学生信息表。


二、具体操作流程及实现思路

实现思路
1.首先将数据库里面的学生信息取出来,展示在界面。我们将新建一个student方法,来展示学生信息。
2.通过点击 导出Excel按钮 请求导出处理函数export。
3.export收到请求后,将取出来的数据循填入到excel表格中。
4.数据填完了,生成excel表格输出在浏览器下载。


三、案例展示

前台代码

<div class="container">
      <table class="table table-bordered" width="60%">
          <thead>
              <tr>
                <th width="30">ID</th>
                <th width="50">姓名</th>
                <th width="30">年龄</th>
                <th width="30">班级</th>
                <th width="30">电话</th>
                <th width="30">邮箱</th>
             </tr>
          </thead>
        <tbody>
            {volist name="list" id="v"}
              <tr>
                <td>{$v['id']}</td>
                <td>{$v['name']}</td>
                <td>{$v['age']}</td>
                <td>{$v['class']}</td>
                <td>{$v['tel']}</td>
                <td>{$v['email']}</td>
              </tr>
            {/volist}
        </tbody>
      </table>
      <button type="button" οnclick="window.open('{:url('export')}')">导出Excel</button>
  </div>

后台代码

 
//表格导出处理
    public function export(){
        //1.从数据库中取出数据
        $list = Db::name('student')->select();
        //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', '邮箱');
        //设置F列水平居中
        $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment()
                    ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置单元格宽度
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(15);
        $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->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]['age']);//添加年龄
            $objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['class']);//添加班级
            $objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['tel']);//添加电话
            $objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['email']);//添加邮箱
        }
        //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;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值