Laravel-Excel导出的Excel工作表不会将列中的date值转换为date

我正在使用laravel-excel将数据库中的数据导出到Excel工作表中。 包含date的列在Excel中不会被解释为date,所以当我使用laravel-excel导入这个Excel文件时,这些列不会被正确parsing和格式化。

一个示例表格:

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这样的date,但Excel不会将其识别为date – 所以当我使用laravel-excel,它不会自动转换为碳的实例。

当我使用$sheet->setColumnFormat(array('C' => 'yyyy-mm-dd')); 并重新导入Excel文件,laravel-excel现在将识别并将date转换为Carbon实例,但是date,时间和date将完全closures!

Excel将把列中的单元格识别为date的唯一方法是如果我单击列并单击。 Excel会自动将其转换为date。

如何确保在导出文件时将some_date列自动转换为date?

如果你想返回额外的列作为碳实例添加以下到您的模型;

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

这将自动将其作为Carbon的一个实例返回。 所以在理论上,每当它试图打印出实例时,都应该以stringforms打印出来。