excel导出时列超过26时解决办法

来源:互联网 发布:爱知科技车间照片 编辑:程序博客网 时间:2024/04/30 06:44
  1. function getExcel($fileName,$headArr,$data){
  2.         
  3.         //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
  4.         import("Org.Util.PHPExcel");
  5.         import("Org.Util.PHPExcel.Writer.Excel5");
  6.         import("Org.Util.PHPExcel.IOFactory.php");
  7.     
  8.         $date = date("Y_m_d",time());
  9.         $fileName .= "_{$date}.xls";
  10.     
  11.         //创建PHPExcel对象,注意,不能少了\
  12.         $objPHPExcel = new \PHPExcel();
  13.         $objProps = $objPHPExcel->getProperties();
  14.         //设置表头
  15.         $key = 0;
  16.         //print_r($headArr);exit;
  17.         foreach($headArr as $v){
  18.             //注意,不能少了。将列数字转换为字母\
  19.             $colum = \PHPExcel_Cell::stringFromColumnIndex($key);
  20.             $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
  21.             $key += 1;
  22.         }
  23.         $column = 2;
  24.         $objActSheet = $objPHPExcel->getActiveSheet();
  25.     
  26.         foreach($data as $key => $rows){ //行写入
  27.             $span = 0;
  28.             foreach($rows as $keyName=>$value){// 列写入
  29.                 $j = \PHPExcel_Cell::stringFromColumnIndex($span);
  30.                 $objActSheet->setCellValue($j.$column, $value);
  31.                 $span++;
  32.             }
  33.             $column++;
  34.         }
  35.     
  36.         $fileName = iconv("utf-8", "gb2312", $fileName);
  37.         //重命名表
  38.         $objPHPExcel->getActiveSheet()->setTitle($date);
  39.         //设置字体大小
  40.         $objPHPExcel->getDefaultStyle()->getFont()->setSize(14);
  41.         //设置单元格宽度
  42.         $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
  43.         //设置默认行高
  44.         $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(23);
  45.         //设置活动单指数到第一个表,所以Excel打开这是第一个表
  46.         $objPHPExcel->setActiveSheetIndex(0);
  47.         header('Content-Type: application/vnd.ms-excel');
  48.         header("Content-Disposition: attachment;filename=\"$fileName\"");
  49.         header('Cache-Control: max-age=0');
  50.     
  51.         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  52.         $objWriter->save('php://output'); //文件通过浏览器下载
  53.         exit;
  54.     }
0 0
原创粉丝点击