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打印出来。