Laravel Excel 正在将日期从标题转换为一些数字

Mar*_*tin 1 php laravel laravel-excel

我有一个与 Laravel Excel 相关的问题。我的标题充满了日期,例如:2018-05-23。但是当我使用 excel 扩展名阅读它时:

 $data = Excel::load($request['file'], function($reader) {})->get();
Run Code Online (Sandbox Code Playgroud)

扩展不会将标题日期视为日期。取而代之的是将其转换的日期,某些数字-例如:43243

这是dd工作表:

在此处输入图片说明

重要说明:当日期在正常行中(不在标题中)时,日期转换得很好。


Laravel Excel 版本 (maatwebsite/excel) - 2.1.0
Laravel 版本 - 5.5

Jak*_*gir 8

数字来自 excel 本身,日期作为数值存储在 excel 中。 http://www.cpearson.com/excel/datetime.htm

对于Laravel框架5.6maatwebsite/excel包版本3.1,要将日期从 excel 数字转换为普通日期格式,PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateFromExcel)可以使用此功能。它接受整数(excel 日期)并返回 DateTime 对象。

更多信息可以在这里找到https://github.com/Maatwebsite/Laravel-Excel/issues/1832


Chi*_*Adi 5

我认为是由于 ExcelParser。它将日期标头字段转换为一些随机数。

因此,为了使其满足您的要求,请在双引号内添加列标题。

示例:“2018-05-23”

https://github.com/Maatwebsite/Laravel-Excel/blob/2.1/src/Maatwebsite/Excel/Parsers/ExcelParser.php#L284