arbeiten, haben diesen Code, mit PHPExcelgetHighestColumn in xlsx nicht
public function getHighestColumn()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
}
public function getHighestRow()
{
return $this->objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
}
Ich habe die gleiche Datei in .xls gespeichert Excel und .xlsx Es verfügt über 10 Spalten (Von B bis K) und 10 Reihen
Wenn ich getHighestColumn
verwenden, in .xls bekomme ich 'K' (richtig), aber in .xlsx Ich bekomme AMK (die letzte Spalte in allen Excel Arbeitsblatt) Über die Zeile, mit .xls I ' Ich bekomme 10, aber in .xlsx bekomme ich 1024. Ich bin ziemlich sicher, dass, außer der Tabelle, der Rest des Arbeitsblatts leer ist.
Irgendwelche Ideen, warum ich ein anderes Ergebnis bekomme?
Hier sind die Leser Ich bin mit
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();
}
Ich habe mit var_dump
geprüft und in jedem Fall, den ich bin mit dem richtigen Leser.
PHP 5.3.5, 1.7.8 PHPExcel, Symfony 1.4
Sie sollten ‚B‘ für die höchste Spalte in der xls-Datei nicht bekommen, wenn Sie Daten in Spalte 'K' .... aber öffne die xlsx-Datei in MS EXcel und führe Strg-Ende, um zu sehen, wie die letzte Zelle aussieht. –
Auch, weil rows und columns von getHighestColumn() und getHighestRow() gezählt werden, wenn sie _anything_ enthalten (einschließlich style-Informationen), anstatt einfach mit Inhalt, sehen Sie sich die getHighestDataColumn() und getHighestDataRow() -Methoden –
Ich meine, bekommen "K", war ein Tippfehler. Überprüfen Sie diese Methoden –