Laravel-excel: 0 aparece como celda en blanco

Creado en 29 may. 2014  ·  7Comentarios  ·  Fuente: Maatwebsite/Laravel-Excel

Pido disculpas si esta pregunta se ha hecho antes. Hojeé los números cerrados y no encontré nada.

Cuando se ejecuta el siguiente código de ejemplo, tiene 2 filas, pero el 0 aparece como una celda en blanco.

\Excel::create('test', function ($excel) {
    $excel->sheet('sheet', function ($sheet) {
        $sheet->fromArray(array(array('foo' => 0), array('foo' => 4)));
    });
})->export('xls');

Encontré esta publicación en el sitio PHPExcel que muestra cómo hacer que aparezcan 0:
https://phpexcel.codeplex.com/discussions/346577

Esto es lo que tuve que cambiar mi código para que los 0 no aparezcan como espacios en blanco.

\Excel::create('test', function ($excel) {
    $excel->sheet('sheet', function ($sheet) {
        $sheet->fromArray(array(array('foo' => 0), array('foo' => 4)), null, 'A1', true);
    });
})->export('xls');

También parece que si pasa 0 como una cadena "0", también funcionará.

Me sorprende que el comportamiento predeterminado sea mostrar ceros como celdas en blanco. ¿Existe una manera más fácil de hacer que aparezcan los ceros? ¿Existe una opción de configuración global que pueda configurar en un solo lugar para no tener que pasar todos esos argumentos adicionales cada vez?

Comentario más útil

@philliskiragu Tuve este mismo problema, pero encontré esta nota en la documentación de exportación:

Por defecto, 0 se muestra como una celda vacía. Si desea cambiar este comportamiento, puede pasar verdadero como cuarto parámetro:

// Will show 0 as 0
$sheet->fromArray($data, null, 'A1', true);

http://www.maatwebsite.nl/laravel-excel/docs/export

Con suerte, esto aclarará algo de confusión si alguien más se encuentra con esto.

Todos 7 comentarios

Se agregará con v1.1.0

Hola, tengo el mismo problema con las importaciones. Cualquier columna en mi CSV que sea '0' se devuelve como nula.

¿Podría hacer un nuevo número sobre esto, porque se trata de importar y no de exportar?

Sé que este problema está cerrado, pero tengo el mismo problema con v2.1. Cuando exporto a csv, los campos con 0 o nulo son celdas en blanco.

 Excel::create('issues', function ($excel) use ($issues) {

                $excel->sheet('Sheet 1', function ($sheet) use ($issues) {

                    $sheet->fromArray($issues);
                });
            })->export('csv');

@philliskiragu Tuve este mismo problema, pero encontré esta nota en la documentación de exportación:

Por defecto, 0 se muestra como una celda vacía. Si desea cambiar este comportamiento, puede pasar verdadero como cuarto parámetro:

// Will show 0 as 0
$sheet->fromArray($data, null, 'A1', true);

http://www.maatwebsite.nl/laravel-excel/docs/export

Con suerte, esto aclarará algo de confusión si alguien más se encuentra con esto.

@philliskiragu Tuve este mismo problema, pero encontré esta nota en la documentación de exportación:

Por defecto, 0 se muestra como una celda vacía. Si desea cambiar este comportamiento, puede pasar verdadero como cuarto parámetro:

// Will show 0 as 0
$sheet->fromArray($data, null, 'A1', true);

http://www.maatwebsite.nl/laravel-excel/docs/export

Con suerte, esto aclarará algo de confusión si alguien más se encuentra con esto.

Ese enlace está desactualizado. Para aquellos que todavía buscan ceros para que aparezcan como ceros, aquí está el enlace actualizado a la parte del documento que les dice cómo
https://docs.laravel-excel.com/3.1/exports/collection.html#strict -null-comparisons
Básicamente, simplemente lo haces: use Maatwebsite\Excel\Concerns\WithStrictNullComparison;

¿Fue útil esta página
0 / 5 - 0 calificaciones