美文网首页
php导出excel

php导出excel

作者: 吴涛涛 | 来源:发表于2020-03-30 11:36 被阅读0次

注意:首先自己百度去下载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');

相关文章

网友评论

      本文标题:php导出excel

      本文链接:https://www.haomeiwen.com/subject/eiimuhtx.html