Laravel-excel: [QUESTION] La valeur de la cellule est renvoyée comme fausse

Créé le 27 sept. 2017  ·  3Commentaires  ·  Source: Maatwebsite/Laravel-Excel

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?

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');

Tous les 3 commentaires

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!

Cette page vous a été utile?
0 / 5 - 0 notes