Laravel-excel: 0 apparaissant comme cellule vide

Créé le 29 mai 2014  ·  7Commentaires  ·  Source: Maatwebsite/Laravel-Excel

Je m'excuse si cette question a déjà été posée. J'ai parcouru les problèmes fermés et je n'ai rien trouvé.

Lorsque l'exemple de code suivant est exécuté, il comporte 2 lignes, mais le 0 s'affiche comme une cellule vide.

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

J'ai trouvé cet article sur le site PHPExcel qui montre comment faire apparaître les 0 :
https://phpexcel.codeplex.com/discussions/346577

Voici ce que j'ai dû changer mon code pour que les 0 n'apparaissent pas comme des blancs.

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

Il semble également que si vous passez 0 en tant que chaîne "0", cela fonctionnera également.

Je suis surpris que le comportement par défaut soit d'afficher les 0 sous forme de cellules vides. Existe-t-il un moyen plus simple d'afficher les 0 ? Existe-t-il une option de configuration globale que je peux définir à un seul endroit afin de ne pas avoir à transmettre tous ces arguments supplémentaires à chaque fois ?

Commentaire le plus utile

@philliskiragu J'ai eu le même problème, mais j'ai trouvé cette note dans la documentation d'exportation :

Par défaut, 0 est affiché comme une cellule vide. Si vous souhaitez modifier ce comportement, vous pouvez passer true comme 4ème paramètre :

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

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

Espérons que cela dissipera une certaine confusion si quelqu'un d'autre tombe dessus.

Tous les 7 commentaires

Sera ajouté avec la v1.1.0

Bonjour, j'ai le même problème avec les importations. Toutes les colonnes de mon CSV qui sont « 0 » sont renvoyées comme nulles.

Pourriez-vous créer un nouveau problème à ce sujet, car il s'agit d'importer et non d'exporter.

Je sais que ce problème est fermé, mais j'ai le même problème avec la v2.1. Lorsque j'exporte au format csv, les champs avec 0 ou null sont des cellules vides.

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

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

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

@philliskiragu J'ai eu le même problème, mais j'ai trouvé cette note dans la documentation d'exportation :

Par défaut, 0 est affiché comme une cellule vide. Si vous souhaitez modifier ce comportement, vous pouvez passer true comme 4ème paramètre :

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

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

Espérons que cela dissipera une certaine confusion si quelqu'un d'autre tombe dessus.

@philliskiragu J'ai eu le même problème, mais j'ai trouvé cette note dans la documentation d'exportation :

Par défaut, 0 est affiché comme une cellule vide. Si vous souhaitez modifier ce comportement, vous pouvez passer true comme 4ème paramètre :

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

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

Espérons que cela dissipera une certaine confusion si quelqu'un d'autre tombe dessus.

Ce lien est obsolète. Pour ceux qui recherchent toujours des zéros pour apparaître comme des zéros, voici le lien mis à jour vers la partie du document qui vous explique comment
https://docs.laravel-excel.com/3.1/exports/collection.html#strict -null-comparisons
Fondamentalement, vous faites simplement : use Maatwebsite\Excel\Concerns\WithStrictNullComparison;

Cette page vous a été utile?
0 / 5 - 0 notes