当前位置:首页 > PHP教程 > php高级应用 > 列表

使用PHPExcel导出Excel表

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-19 13:07:24 浏览: 评论:0 

本文实例为大家分享了PHPExcel导出Excel表的具体代码,供大家参考,具体内容如下:

  1. /** 
  2.    * Excel导出 
  3.    * @param $fileName(文件名) 
  4.    * @param $headArr (表头) 
  5.    * @param $data  (每一行的数据) 
  6.    * @throws \PHPExcel_Exception 
  7.    * @throws \PHPExcel_Reader_Exception 
  8.    */ 
  9.   function getExcel($fileName,$headArr,$data){ 
  10.     include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel.php"); 
  11.     include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel2007.php"); 
  12.     include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/Writer/Excel5.php"); 
  13.     include_once (THINK_PATH."Library/Vendor/phpexcel/PHPExcel/IOFactory.php"); 
  14.     if(emptyempty($data) || !is_array($data)){ 
  15.       die("data must be a array"); 
  16.     } 
  17.     if(emptyempty($fileName)){ 
  18.       exit
  19.     } 
  20.     $date = date("Y_m_d",time()); 
  21.     $fileName .= "_{$date}.xlsx"
  22.    
  23.     //创建新的PHPExcel对象 
  24.     $objPHPExcel = new \PHPExcel(); 
  25.     $objProps = $objPHPExcel->getProperties(); 
  26.    
  27.     //设置表头 
  28.     $key = ord("A"); 
  29.     $key2 = ord("A"); 
  30.     $colum2 = ''
  31.     $objActSheet = $objPHPExcel->getActiveSheet(); 
  32.     $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); 
  33.     foreach($headArr as $v){ 
  34.       $colum = chr($key); 
  35.       $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum2.$colum.'1'$v); 
  36.       if($key < 90){ 
  37.         $key += 1; 
  38.       }else
  39.         $key = ord("A"); 
  40.         $colum2 = chr($key2); 
  41.         $key2++; 
  42.       } 
  43.     } 
  44.     //exit; 
  45.     $column = 2; 
  46.    
  47.     foreach($data as $key => $rows){ //行写入 
  48.       $span = ord("A"); 
  49.       $span2 = ord("A"); 
  50.       $j2 = ''
  51.       foreach($rows as $keyName=>$value){// 列写入 
  52.         $j = chr($span); 
  53.         //$objActSheet->setCellValue($j.$column, $value); 
  54.         //把每个单元格设置成分文本类型 
  55.         //dump($j2.$j.$column); 
  56.         $objActSheet->setCellValueExplicit($j2.$j.$column,$value,\PHPExcel_Cell_DataType::TYPE_STRING); 
  57.    
  58.         if($span < 90){ 
  59.           $span += 1; 
  60.         }else
  61.           $span = ord("A"); 
  62.           $j2 = chr($span2); 
  63.           $span2++; 
  64.         } 
  65.       } 
  66.       $column++; 
  67.     } 
  68.     // exit; 
  69.     $fileName = iconv("utf-8""gb2312"$fileName); 
  70.     //重命名表 
  71.     $objPHPExcel->getActiveSheet()->setTitle('Simple'); 
  72.     //设置活动单指数到第一个表,所以Excel打开这是第一个表 
  73.     $objPHPExcel->setActiveSheetIndex(0); 
  74.     //将输出重定向到一个客户端web浏览器(Excel2007) 
  75.     header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
  76.     header("Content-Disposition: attachment; filename=\"$fileName\""); 
  77.     header('Cache-Control: max-age=0'); 
  78.     $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007'); 
  79. //    if(!empty($_GET['excel'])){ 
  80. //      $objWriter->save('php://output'); //文件通过浏览器下载 
  81. //    }else{ 
  82. //      $objWriter->save($fileName); //脚本方式运行,保存在当前目录 
  83. //    } //phpfensi.com 
  84.     $objWriter->save('php://output'); 
  85.     exit
  86.    
  87.   } 

Tags: PHPExcel 导出Excel表

分享到: