Laravel-excel: 0 aparecendo como célula em branco

Criado em 29 mai. 2014  ·  7Comentários  ·  Fonte: Maatwebsite/Laravel-Excel

Peço desculpas se essa pergunta já foi feita antes. Folheei as questões fechadas e não encontrei nada.

Quando o código de exemplo a seguir é executado, ele possui 2 linhas, mas o 0 aparece como uma célula em branco.

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

Encontrei esta postagem no site PHPExcel que mostra como fazer com que os zeros apareçam:
https://phpexcel.codeplex.com/discussions/346577

Aqui está o que eu tive que mudar meu código para que os 0s não apareçam como espaços em branco.

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

Também parece que se você passar 0 como uma string "0", isso também funcionará.

Estou surpreso que o comportamento padrão seja mostrar os zeros como células em branco. Existe uma maneira mais fácil de fazer com que os zeros apareçam? Existe uma opção de configuração global que eu possa definir em um lugar para não ter que passar todos esses argumentos adicionais todas as vezes?

Comentários muito úteis

@philliskiragu Tive o mesmo problema, mas encontrei esta observação na documentação de exportação:

Por padrão, 0 é mostrado como uma célula vazia. Se você quiser mudar esse comportamento, pode passar verdadeiro como o 4º parâmetro:

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

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

Esperançosamente, isso irá esclarecer alguma confusão se alguém mais se deparar com isso.

Todos 7 comentários

Será adicionado com v1.1.0

Olá, estou tendo o mesmo problema com as importações. Todas as colunas em meu CSV que são '0' são retornadas como nulas.

Você poderia fazer uma nova questão sobre isso, porque se trata de importação e não de exportação.

Sei que esse problema foi resolvido, mas estou tendo o mesmo problema com a v2.1. Quando exporto para csv, os campos com 0 ou nulo são células em branco.

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

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

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

@philliskiragu Tive o mesmo problema, mas encontrei esta observação na documentação de exportação:

Por padrão, 0 é mostrado como uma célula vazia. Se você quiser mudar esse comportamento, pode passar verdadeiro como o 4º parâmetro:

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

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

Esperançosamente, isso irá esclarecer alguma confusão se alguém mais se deparar com isso.

@philliskiragu Tive o mesmo problema, mas encontrei esta observação na documentação de exportação:

Por padrão, 0 é mostrado como uma célula vazia. Se você quiser mudar esse comportamento, pode passar verdadeiro como o 4º parâmetro:

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

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

Esperançosamente, isso irá esclarecer alguma confusão se alguém mais se deparar com isso.

Esse link está desatualizado. Para aqueles que ainda procuram que os zeros apareçam como zeros, aqui está o link atualizado para a parte do documento que mostra como
https://docs.laravel-excel.com/3.1/exports/collection.html#strict -null-comparisons
Basicamente, você simplesmente faz: use Maatwebsite\Excel\Concerns\WithStrictNullComparison;

Esta página foi útil?
0 / 5 - 0 avaliações