Laravel-excel: [QUESTION] Der Wert der Zelle wird als falsch zurückgegeben

Erstellt am 27. Sept. 2017  ·  3Kommentare  ·  Quelle: Maatwebsite/Laravel-Excel

Ich verwende Laravel Excel 2.1. Laravel 5.4.3.

Ich versuche, eine CSV-Datei zu lesen. Das Problem ist, dass einige Zellen in false konvertiert werden, wenn sie Zeichenfolgen sein sollten.

Hier ist ein Beispiel für die erste Zeile der Datei: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80 . ist eigentlich \ufffd .

Das Problem betrifft nur die drei letzten Zeilen. Wenn ich die Datei lese:

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 enthält die richtigen Werte für alles, außer den drei letzten Zellen, die nur false . Anstatt false zu erhalten, möchte ich Strings erhalten.

Wenn ich jedoch alle nur aus der ersten Reihe entferne, funktioniert es nicht nur für die erste Reihe, sondern auch für den Rest!
Die erste Zeile wird als folgendes Array gelesen: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8] .
Die zweite Zeile wird als folgendes Array gelesen: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"] . Alle nachfolgenden Zeilen werden auf ähnliche Weise wie die zweite Zeile gelesen.
Ich kann nicht die erste Zeile für jede Datei bereinigen, die ich verarbeiten möchte. Gibt es also eine Möglichkeit, Laravel-Excel so einzustellen, dass der Wert aus der Zelle korrekt als Zeichenfolge abgerufen wird?

Hilfreichster Kommentar

@marijnz0r Vielen Dank!
Ich hatte mal ein Problem wie dieses mit ° Zeichen.
Um mein Problem zu lösen habe ich folgendes gemacht:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');

Alle 3 Kommentare

Das gleiche Problem tritt bei mir auf, wenn ich Zeichen wie und é . Hast du schon eine Lösung gefunden?
Bearbeiten: Das Ändern der Zeichencodierung in windows-1252 hat bei mir funktioniert.

@marijnz0r Vielen Dank!
Ich hatte mal ein Problem wie dieses mit ° Zeichen.
Um mein Problem zu lösen habe ich folgendes gemacht:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');

Tk viel Hilfe!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen