I'm using Laravel Excel 2.1. Laravel 5.4.3.
I'm trying to read a CSV file. The problem is, some cells are converted to false
when they should be strings.
Here is an example of the first row of the file: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80
. �
is actually \ufffd
.
The problem only concerns the three last rows. When I read the file:
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 contains the correct values for everything, except the three last cells which only contain false
. Instead of getting false, I would like to get strings.
However, if I remove all the �
only from the first row, it works fine not only for the first row but also for the rest!
The first row is read as the following array: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
.
The second row is read as the following array: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"]
. All the subsequent rows are read in a similar fashion to the second row.
I cannot sanitise the first row for every file I plan to process, so is there a way to set Laravel-Excel to fetch the value from the cell correctly as a string?
The same problem arises for me when using characters like ’
and é
. Have you found a solution yet?
Edit: changing the character encoding to windows-1252
worked for me.
@marijnz0r Thank you so much!
I used to have a problem like this with ° character.
To solve my problem I did that :
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
Tks a lot help!
Most helpful comment
@marijnz0r Thank you so much!
I used to have a problem like this with ° character.
To solve my problem I did that :
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');