有这个代码,使用 PHPExcel
public function getHighestColumn()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
}
public function getHighestRow()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
}
我在 .xls 和 .xlsx 中保存了相同的 excel 文件它有 10 列(从 B 到 K)和 10 行
当我使用getHighestColumn
.xls 时,我得到“K”(正确),但在 .xlsx 中,我得到 AMK(所有 excel 工作表中的最后一列) 关于行,使用 .xls 我得到 10,但是在 .xlsx 中我得到 1024。我很确定,除了表格之外,工作表的其余部分都是空白的。
任何想法为什么我会得到不同的结果?
这是我正在使用的阅读器
public function openReader($filePath)
{
//aca determinamos cual tipo es para saber que reader es
$reader_5 = new PHPExcel_Reader_Excel5();
$reader_07 = new PHPExcel_Reader_Excel2007();
$inputFileType = $this->canRead(new PHPExcel_Reader_Excel5(), $filePath, self::EXCEL5);
if($inputFileType === '')
$inputFileType = $this->canRead(new PHPExcel_Reader_Excel2007(), $filePath, self::EXCEL2007);
else
{
throw new Exception("No se puede procesar el archivo; el formato no es correcto");
}
return PHPExcel_IOFactory::createReader($inputFileType);
}
private function canRead($reader, $path, $readerType)
{
return $reader->canRead($path) ? $readerType: '';
}
public function persist($fileName)
{
$filePath = sfConfig::get('sf_upload_dir').'\\'.$fileName;
$this->objReader = $this->openReader($filePath);
//Set only first Sheet
$this->setOnlyFirstSheet();
$this->createObjPHPExcel($filePath);
echo $this->getHighestColumn();
echo $this->getHighestRow();
}
我已经检查过var_dump
并且在每种情况下我都使用了正确的阅读器。
php 5.3.5、PHPExcel 1.7.8、Symfony 1.4