2016-04-02 8 views
0

Ich möchte Excel-Titel erhalten.
Ich habe Methode Controller wie folgt aus:Wie bekomme ich Excel-Titel in Laravel 5.2

use Maatwebsite\Excel\Facades\Excel; 



public function importCSVEXCEl() 
    { 

    Excel::load('test.xls', function($reader) { 
     foreach($reader as $sheet) 
     { 

     $temp= $sheet->getTitle(); 
     } 
    }); 
} 

nach Ausführen dieser Methode mich

Call to undefined Methode PHPExcel :: getTitle()

Antwort

1

Nach Issue #316 discussion on Github Fehler zeigen:

Wenn Sie nur einen haben Blatt, dann müssen Sie nicht durch die Blätter durchlaufen.

Excel::load(public_path().$destinationPath.'/'.$name, function($sheet) 
{ 
     // reader methods 
     $sheetTitle = $sheet->getTitle(); 
}); 

Um der injizierte Wert im Verschluß zu verifizieren ist in der Tat ein Blatt, können Sie es Dump und sehen, ob die Klasse „RowCollection“ genannt wird.

Wenn Sie immer die Blätter durchlaufen möchten, egal was, müssen Sie die import.force_sheets_collection auf true setzen.

und zweite Vorschlag aus der gleichen Quelle:

Dies ist, was ich verwendet und scheint

$sheetNames = Excel::load($file)->getSheetNames(); 
+0

zu arbeiten Wie import.force_sheets_collection ändern können. Hexendatei sollte ich ändern? – paranoid

+0

10 @paranoid Diese Einstellung befindet sich im 'Import'-Bereich der 'excel.php'-Datei in Ihrem Laravel' config'-Ordner. – KazikM

+0

gelöst von import.force_sheets_collection = true – paranoid