Laravel-excel: 0 отображается как пустая ячейка

Созданный на 29 мая 2014  ·  7Комментарии  ·  Источник: Maatwebsite/Laravel-Excel

Прошу прощения, если этот вопрос задавали раньше. Я просмотрел закрытые выпуски и ничего не нашел.

Когда выполняется следующий пример кода, он имеет 2 строки, но 0 отображается как пустая ячейка.

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

Я нашел этот пост на сайте PHPExcel, в котором показано, как заставить появиться 0:
https://phpexcel.codeplex.com/discussions/346577

Вот на что мне пришлось изменить свой код, чтобы 0 не отображались как пробелы.

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

Также кажется, что если вы передадите 0 как строку «0», это тоже будет работать.

Я удивлен, что по умолчанию 0 отображается в виде пустых ячеек. Есть ли более простой способ заставить появиться 0? Есть ли глобальная опция конфигурации, которую я могу установить в одном месте, чтобы мне не приходилось каждый раз передавать все эти дополнительные аргументы?

Самый полезный комментарий

@philliskiragu У меня была такая же проблема, но я нашел это примечание в документации по экспорту:

По умолчанию 0 отображается как пустая ячейка. Если вы хотите изменить это поведение, вы можете передать true в качестве 4-го параметра:

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

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

Надеюсь, это устранит некоторую путаницу, если кто-то еще наткнется на это.

Все 7 Комментарий

Будет добавлено с v1.1.0

Привет, у меня такая же проблема с импортом. Любые столбцы в моем CSV, имеющие значение «0», возвращаются как пустые.

Не могли бы вы поднять новый вопрос по этому поводу, потому что он касается импорта, а не экспорта.

Спасибо, сделано здесь: https://github.com/Maatwebsite/Laravel-Excel/issues/153

Я знаю, что эта проблема закрыта, но у меня такая же проблема с v2.1. Когда я экспортирую в CSV, поля с 0 или NULL являются пустыми ячейками.

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

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

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

@philliskiragu У меня была такая же проблема, но я нашел это примечание в документации по экспорту:

По умолчанию 0 отображается как пустая ячейка. Если вы хотите изменить это поведение, вы можете передать true в качестве 4-го параметра:

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

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

Надеюсь, это устранит некоторую путаницу, если кто-то еще наткнется на это.

@philliskiragu У меня была такая же проблема, но я нашел это примечание в документации по экспорту:

По умолчанию 0 отображается как пустая ячейка. Если вы хотите изменить это поведение, вы можете передать true в качестве 4-го параметра:

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

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

Надеюсь, это устранит некоторую путаницу, если кто-то еще наткнется на это.

Эта ссылка устарела. Для тех, кто все еще хочет, чтобы нули отображались как нули, вот обновленная ссылка на часть документа, в которой рассказывается, как
https://docs.laravel-excel.com/3.1/exports/collection.html#strict -null-сравнения
Обычно вы просто делаете: use Maatwebsite\Excel\Concerns\WithStrictNullComparison;

Была ли эта страница полезной?
0 / 5 - 0 рейтинги