Я использую Laravel Excel 2.1. Laravel 5.4.3.
Я пытаюсь прочитать файл CSV. Проблема в том, что некоторые ячейки преобразуются в false
когда они должны быть строками.
Вот пример первой строки файла: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80
. �
на самом деле \ufffd
.
Проблема касается только трех последних строк. Когда я читаю файл:
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 содержит правильные значения для всего, кроме трех последних ячеек, которые содержат только false
. Вместо того, чтобы ошибаться, я хотел бы получить строки.
Однако, если я удалю все �
только из первой строки, он будет отлично работать не только для первой строки, но и для остальных!
Первая строка читается как следующий массив: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
.
Вторая строка читается как следующий массив: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"]
. Все последующие строки читаются аналогично второй строке.
Я не могу очистить первую строку для каждого файла, который планирую обработать, поэтому есть ли способ настроить Laravel-Excel для правильного извлечения значения из ячейки в виде строки?
Та же проблема возникает у меня при использовании таких символов, как ’
и é
. Вы уже нашли решение?
Изменить: изменение кодировки символов на windows-1252
сработало для меня.
@ marijnz0r Большое спасибо!
У меня была такая проблема с символом °.
Чтобы решить свою проблему, я сделал это:
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
Очень помогите!
Самый полезный комментарий
@ marijnz0r Большое спасибо!
У меня была такая проблема с символом °.
Чтобы решить свою проблему, я сделал это:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');