Estou usando o Laravel Excel 2.1. Laravel 5.4.3.
Estou tentando ler um arquivo CSV. O problema é que algumas células são convertidas em false
quando deveriam ser strings.
Aqui está um exemplo da primeira linha do arquivo: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80
. �
é na verdade \ufffd
.
O problema diz respeito apenas às três últimas linhas. Quando eu li o arquivo:
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 contém os valores corretos para tudo, exceto as três últimas células que contêm apenas false
. Em vez de ser falso, gostaria de obter strings.
No entanto, se eu remover todos os �
apenas da primeira linha, funcionará bem não apenas para a primeira linha, mas também para o resto!
A primeira linha é lida como a seguinte matriz: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
.
A segunda linha é lida como a seguinte matriz: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"]
. Todas as linhas subsequentes são lidas de maneira semelhante à segunda linha.
Não consigo limpar a primeira linha de cada arquivo que pretendo processar, então há uma maneira de configurar o Laravel-Excel para buscar o valor da célula corretamente como uma string?
O mesmo problema surge para mim ao usar caracteres como ’
e é
. Você já encontrou uma solução?
Editar: alterar a codificação de caracteres para windows-1252
funcionou para mim.
@ marijnz0r Muito obrigado!
Eu costumava ter um problema como este com o personagem °.
Para resolver meu problema, fiz isso:
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
Tks ajuda muito!
Comentários muito úteis
@ marijnz0r Muito obrigado!
Eu costumava ter um problema como este com o personagem °.
Para resolver meu problema, fiz isso:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');