'' <-- valeur cellule 'color' => '' <-- propriété optionelle "couleur" (ou autre) ) ) ) */ public function toArray($file){ //on prend l'onglet 1 si aucun onglet configuré $sheetIndex = isset($this->meta) && isset($this->meta['worksheet']) && is_numeric($this->meta['worksheet']) ? $this->meta['worksheet']-1 : 0; $sheetIndex = $sheetIndex<0 ? 0 : $sheetIndex; $rows = Excel::parse($file,false,$sheetIndex,false); $emptyLines = 0; $finalArray = array(); if(!is_array($rows)) $rows = array(); foreach($rows as $line){ //si + de 10 lignes vides on arrette de lire (evite les excels sans fin) if($this->emptyLine($line,true)) $emptyLines++; if($emptyLines>10) break; $finalLine = array(); foreach($line as $cell){ $cell = str_replace("\n","
",$cell); $finalLine[]= array('value'=>$cell); } $finalArray[] = $finalLine; } return $finalArray; } //vérifie si une ligne est a vide ou non public function emptyLine($line,$raw = false){ if($raw) return str_replace(array(';',' ',"\t","\n","\r"),'',$line) == ''; $oneFilled = false; foreach($line as $cell){ if( $this->emptyCell($cell) ) continue; $oneFilled = true; break; } //if($oneFilled){ //foreach($line as $cell){ // var_dump($cell['value'],$this->emptyCell($cell)); //} //} return !$oneFilled; } //vérifie si une cellule est a vide ou non public function emptyCell($cell){ $val = str_replace(array(';',' ',"\t","\n","\r"),'',$cell['value']); //1900-01-18 00:00:00 compoense le bug de SimpleXLSX qui detecte 1900-01-18 00:00:00 sur une cellule vide de type date return $val == '' || $val =='1970-01-01 00:00:00'; } //Déduction du type d'une celleule a partir de sa valeur public function cellType($headerCell,$valueCell){ return parent::cellType($headerCell,$valueCell); } //Réglages spécifiques a ce modèle d'import public function settings(){ $fields = array(); $fields = array( 'worksheet' => array( 'type' => 'integer', 'legend' => 'Optionnel (defaut: 1)', 'label' => 'Numéro de l\'onglet a importer' ) ); return $fields; } } ?>