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?
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?
Gracias, hecho aquí: https://github.com/Maatwebsite/Laravel-Excel/issues/153
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;
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:
http://www.maatwebsite.nl/laravel-excel/docs/export
Con suerte, esto aclarará algo de confusión si alguien más se encuentra con esto.