Экспортированный лист Excel Laravel-Excel не преобразует значения даты в столбце в дату

я использую Laravel-первенствует экспортировать данные из моей базы данных в таблицу Excel. Столбцы, содержащие даты, не интерпретируются как даты в Excel, поэтому, когда я собираюсь импортировать этот файл Excel с использованием laravel-excel, эти столбцы не анализируются и форматируются неправильно.

Пример таблицы:

table name: items
id  |   name    | some_date
===========================
1     Boxes       2014-11-13 17:00:00
2     Pickles     2016-12-01 13:30:00
...

Мой код Laravel:

Excel::create('SomeTitle', function($excel) {

$items = Item::all()->toArray();

$excel->sheet('SheetName', function($sheet) use($items) {
$sheet->fromArray($items, null, 'A1', true);
});
})->export('xls');

Теперь в экспортированном файле Excel столбец C (который является «some_date») будет содержать такую ​​дату, как 2014-11-13 17:00:00, но Excel не распознает это как дату — поэтому, когда я импортирую плитку с помощью laravel-excel, она не будет автоматически преобразована в экземпляр углерод.

Когда я использую $sheet->setColumnFormat(array('C' => 'yyyy-mm-dd')); и снова импортируйте файл Excel, laravel-excel теперь распознает и преобразует дату в экземпляр Carbon, но дата, время и дни будут полностью отключены!

Единственный способ, которым Excel распознает ячейки в столбце как даты, — это если я щелкну по столбцу и щелкну прочь. Excel затем автоматически преобразует его в дату.

Как я могу гарантировать, что some_date колонка автоматически конвертируется в дату при экспорте файла?

2

Решение

Если вы хотите вернуть дополнительные столбцы как экземпляры Carbon, добавьте в свою модель следующее:

public function getDates(){
return array('created_at','updated_at','some_date');
}

Это вернет его как экземпляр Carbon автоматически. Так что теоретически всякий раз, когда он пытается распечатать экземпляр, он должен быть распечатан в виде строки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]