Прошу прощения, если этот вопрос задавали раньше. Я просмотрел закрытые выпуски и ничего не нашел.
Когда выполняется следующий пример кода, он имеет 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? Есть ли глобальная опция конфигурации, которую я могу установить в одном месте, чтобы мне не приходилось каждый раз передавать все эти дополнительные аргументы?
Будет добавлено с 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;
Самый полезный комментарий
@philliskiragu У меня была такая же проблема, но я нашел это примечание в документации по экспорту:
По умолчанию 0 отображается как пустая ячейка. Если вы хотите изменить это поведение, вы можете передать true в качестве 4-го параметра:
http://www.maatwebsite.nl/laravel-excel/docs/export
Надеюсь, это устранит некоторую путаницу, если кто-то еще наткнется на это.