php 读取excel时只读取到一行数据
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;
}