Estoy usando Laravel Excel 2.1. Laravel 5.4.3.
Estoy intentando leer un archivo CSV. El problema es que algunas celdas se convierten a false
cuando deberían ser cadenas.
A continuación se muestra un ejemplo de la primera fila del archivo: 11/10/2016 11:35,91,241,Dundee Students Association,Liar Bar,dusa-2988,Payment,�1.80,�0.00,�1.80
. �
es en realidad \ufffd
.
El problema solo afecta a las tres últimas filas. Cuando leo el archivo:
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 contiene los valores correctos para todo, excepto las tres últimas celdas que solo contienen false
. En lugar de ser falso, me gustaría obtener cadenas.
Sin embargo, si elimino todos los �
solo de la primera fila, ¡funciona bien no solo para la primera fila sino también para el resto!
La primera fila se lee como la siguiente matriz: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-2988","Payment",1.8,0,1.8]
.
La segunda fila se lee como la siguiente matriz: ["11\/10\/2016 11:35",91,241,"Dundee Students Association","Liar Bar","dusa-3461","Payment","\ufffd1.10","\ufffd0.00","\ufffd1.10"]
. Todas las filas siguientes se leen de manera similar a la segunda fila.
No puedo desinfectar la primera fila para cada archivo que planeo procesar, entonces, ¿hay alguna manera de configurar Laravel-Excel para obtener el valor de la celda correctamente como una cadena?
El mismo problema surge para mí cuando uso caracteres como ’
y é
. ¿Ya has encontrado una solución?
Editar: cambiar la codificación de caracteres a windows-1252
funcionó para mí.
@ marijnz0r ¡ Muchas gracias!
Solía tener un problema como este con el carácter °.
Para resolver mi problema hice eso:
Config::set('excel.import.encoding.input', 'windows-1252');
Config::set('excel.import.encoding.output', 'windows-1252');
¡Tks mucha ayuda!
Comentario más útil
@ marijnz0r ¡ Muchas gracias!
Solía tener un problema como este con el carácter °.
Para resolver mi problema hice eso:
Config::set('excel.import.encoding.input', 'windows-1252'); Config::set('excel.import.encoding.output', 'windows-1252');