php读取excel时数据少时可以读取到,当excel列数超过a-z 时  例如aa ab 时读取不到 
public function format_excel2array($filePath='',$sheet=0){
            // $phpexcel = new \PHPExcel();
            if(empty($filePath) or !file_exists($filePath)){die('file not exists');}
            $PHPReader = new \PHPExcel_Reader_Excel2007();        //建立reader对象
            if(!$PHPReader->canRead($filePath)){
                $PHPReader = new PHPExcel_Reader_Excel5();
                if(!$PHPReader->canRead($filePath)){
                    echo 'no Excel';
                    return ;
                }
            }
            $PHPExcel = $PHPReader->load($filePath);        //建立excel对象
            $currentSheet = $PHPExcel->getSheet($sheet);        //**读取excel文件中的指定工作表*/
            $allColumn = $currentSheet->getHighestColumn();   //**取得最大的列号*/
            $allRow = $currentSheet->getHighestRow();        //**取得一共有多少行*/
            // print_r($allColumn);
            // print_r($allRow); 
            $data = array();
            for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){        
            //循环读取每个单元格的内容。注意行从1开始,列从A开始
                for($colIndex='A';$colIndex<=$allColumn;$colIndex++){
                    $addr = $colIndex.$rowIndex;
                    $cell = $currentSheet->getCell($addr)->getValue();
                    if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
                        $cell = $cell->__toString();
                    }
                    //print_r($cell);
                    $data[$rowIndex][] = $cell;
                }
              
            }
            
            foreach ($data as $key => $value) {
                    if($data[$key]['0']==''){
                        unset($data[$key]);
                    }
                    for ($i=0; $i <count($value); $i++) { 
                        if($data[$key][$i]==''){
                            unset($data[$key][$i]);
                        }
                    }
                }
                print_r($data);
            //print_r($data);
            return $data;
        }

解决方案 »

  1.   

    //读取excel表格
    public static  function import($path){
            $excelReader = PHPExcel_IOFactory::createReader('Excel2007');
            //载入文件并获取第一个sheet
            $phpexcel = $excelReader->load($path)->getSheet(0);
            //总行数
            $total_line = $phpexcel->getHighestRow();
            if($total_line == 0){
                return'导入文件的内容不能为空'; 
            }
            //总列数         
            $total_column = $phpexcel->getHighestColumn();
            // 组合数据
            $dataArray = array();
            for($row = 2; $row <= $total_line; $row++) {
                $data = array();
                for($column = 'A'; $column <= $total_column; $column++) {
                    $data[] = trim($phpexcel->getCell($column.$row)->getValue());
                }
                $dataArray[]=$data;
            }
            return $dataArray;
    }