美文网首页
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