php导出excel

注意:首先自己百度去下载PHPExcel.php类

//包含下载的类文件
include 'PHPExcel.php';
        //excel表名
        $expTitle='维修报表';
        //excel第一行
        $expCellName=[
          ['id','序号'],
          ['name','维修人'], 
        ];
     //这里是需要下载的数据内容,数据为一个二维数组,每一个一维数组对应excel表中一行
      $expTableData = [
          ['id'=>1,'name'=>'张三'],
          ['id'=>2,'name'=>'李四'],
      ];
      $xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
      $fileName = $expTitle;//or $xlsTitle 文件名称可根据自己情况设定
      $cellNum = count($expCellName);
      $dataNum = count($expTableData);
      $objPHPExcel = new \PHPExcel();//方法一
      $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');
      //设置头部导出时间备注  如果需要打开注释
      // $objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
      // $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle . ' 导出时间:' . date('Y-m-d H:i:s'));
        //设置行高
        $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);
        //循环设置单元格宽度  
        foreach ($cellName as $kk => $vv) {
              $objPHPExcel->getActiveSheet()->getColumnDimension($vv)->setWidth(16);
        }  

      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++) {
              if(isset($expTableData[$i][$expCellName[$j][0]])){
                  $objPHPExcel->getActiveSheet(0)->setCellValue(
                      $cellName[$j] . ($i + 2), $expTableData[$i][$expCellName[$j][0]]
                  );
              }else{
                  $objPHPExcel->getActiveSheet(0)->setCellValue(
                      $cellName[$j] . ($i + 2), ''
                  );
              }
          }
      }
      ob_end_clean();//这一步非常关键,用来清除缓冲区防止导出的excel乱码
      header('pragma:public');
      header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
      header("Content-Disposition:attachment;filename=$fileName.xls");//"xls"参考下一条备注
      $objWriter = \PHPExcel_IOFactory::createWriter(
          $objPHPExcel, 'Excel5'
      );//"Excel2007"生成2007版本的xlsx,"Excel5"生成2003版本的xls
      $objWriter->save('php://output');
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 博主在使用ThinkPHP开发网站的时候,经常会遇到用户要求导出Excel文件,经过在网上寻找后发现,PHPExc...
    大刘的英语世界阅读 6,494评论 0 13
  • 最近有个项目需要导出Excel表的功能,上网查了,发现有挺多缺陷的,有些太久远的了,phpExcel文件都无法下载...
    程大哥T_T阅读 3,083评论 6 4
  • 在后端开发中,做产品后台时总会涉及到数据导出,导出excel,相信大家都做过吧。接下来推荐集中导出的写法,供个参考...
    封不然阅读 3,279评论 0 0
  • 之前用phpexcel导出数据一直很正常,后来在新的服务器上导出数据时候出错 原因是php7.2时候Fatal e...
    缄默_e4a3阅读 399评论 0 0
  • 《欢乐颂2》最近火的不要不要的,我也是每天坐等更新呀!网络上各大公众号每天评论不断,樊胜美被大家贴上了美貌如花、情...
    爱思嘉阅读 368评论 2 3

友情链接更多精彩内容