Thinkphp使用PHPExcel实现导入Excel

浏览:22207 发布日期:2013/11/04 分类:功能实现
Thinkphp使用PHPExcel实现导入Excel
  public function __construct() {
  
    /*导入phpExcel核心类 */
    require_once APP_PATH.'PHPExcel/PHPExcel.php'; 
    require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel5.php';     // 用于其他低版本xls 
    require_once APP_PATH.'PHPExcel/PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式 
  }


//导入excel内容转换成数组 
public function import($filePath){
  $this->__construct();
  $PHPExcel = new PHPExcel(); 

  /**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/ 
  $PHPReader = new PHPExcel_Reader_Excel2007(); 
    if(!$PHPReader->canRead($filePath)){ 
      $PHPReader = new PHPExcel_Reader_Excel5(); 
      if(!$PHPReader->canRead($filePath)){ 
        echo 'no Excel'; 
        return; 
      } 
    } 
  
  $PHPExcel = $PHPReader->load($filePath); 
  $currentSheet = $PHPExcel->getSheet(0);  //读取excel文件中的第一个工作表
  $allColumn = $currentSheet->getHighestColumn(); //取得最大的列号
  $allRow = $currentSheet->getHighestRow(); //取得一共有多少行
  $erp_orders_id = array();  //声明数组
  
  /**从第二行开始输出,因为excel表中第一行为列名*/ 
  for($currentRow = 1;$currentRow <= $allRow;$currentRow++){ 
  
      /**从第A列开始输出*/ 
    for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){ 
    
      $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()将字符转为十进制数*/
      if($val!=''){
      $erp_orders_id[] = $val; 
      }
      /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/ 
      //echo iconv('utf-8','gb2312', $val)."\t"; 
      
    } 
  } 
  return $erp_orders_id;
}
所有文件已经打包,感兴趣可以下载测试,多多探讨

附件 Thinkphp+PHPExcel.zip ( 3.05 KB 下载:2781 次 )

评论( 相关
后面还有条评论,点击查看>>