J'utilise Laravel Excel 2.1. Laravel 5.4.3.
J'essaye de lire un fichier CSV. Le problème est que certaines cellules sont converties en false
alors qu'elles devraient être des chaînes.
Voici un exemple de la première ligne du fichier : 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80
. �
est en fait \ufffd
.
Le problème ne concerne que les trois dernières rangées. Quand je lis le fichier :
Excel::filter('chunk')->load($file_path)->chunk(250, function($sheets_collection)
{
foreach ($sheets_collection as $current_sheet) {
foreach ($current_sheet as $current_row) {
// process $current_row
}
}
}, 'UTF-8');
$current_row contient les valeurs correctes pour tout, sauf les trois dernières cellules qui ne contiennent que false
. Au lieu d'obtenir false, j'aimerais obtenir des chaînes.
Cependant, si je supprime tous les �
uniquement de la première ligne, cela fonctionne bien non seulement pour la première ligne mais aussi pour le reste !
La première ligne est lue comme le tableau suivant : ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
.
La deuxième ligne est lue comme le tableau suivant : ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"]
. Toutes les lignes suivantes sont lues de la même manière que la deuxième ligne.
Je ne peux pas nettoyer la première ligne de chaque fichier que je prévois de traiter, existe-t-il donc un moyen de définir Laravel-Excel pour récupérer correctement la valeur de la cellule sous forme de chaîne?
Le même problème se pose pour moi lorsque j'utilise des caractères comme ’
et é
. Avez-vous déjà trouvé une solution ?
Edit : changer l'encodage des caractères en windows-1252
fonctionné pour moi.
@marijnz0r Merci beaucoup !
J'avais un problème comme ça avec le caractère °.
Pour résoudre mon problème j'ai fait ça :
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
Tks beaucoup d'aide!
Commentaire le plus utile
@marijnz0r Merci beaucoup !
J'avais un problème comme ça avec le caractère °.
Pour résoudre mon problème j'ai fait ça :
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');