Laravel Excel конвертирует даты из заголовка в несколько чисел - PullRequest
0 голосов
/ 23 мая 2018

У меня проблема, связанная с Laravel Excel.У меня есть заголовок, заполненный, например, датами: 2018-05-23.Но когда я читаю его с расширением Excel, используя:

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

Расширение не рассматривает даты заголовка как даты.Вместо этого он преобразует даты в некоторые числа - например: 43243.

Вот dd листа:

enter image description here

Важное примечание: если дата находится в обычной строке (а не в заголовке), тогда она хорошо преобразуется.


Версия Laravel Excel (maatwebsite / excel) - 2.1.0
Версия Laravel - 5.5

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Числа взяты из самого Excel, даты сохраняются в Excel в виде числовых значений.http://www.cpearson.com/excel/datetime.htm

Для Laravel framework 5.6 и maatwebsite / excel версия пакета 3.1 , для преобразованияДата от номеров Excel до обычного формата даты, эта функция PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateFromExcel) может быть использована.Он принимает целое число (дата Excel) и возвращает объект DateTime.

Более подробную информацию можно найти здесь https://github.com/Maatwebsite/Laravel-Excel/issues/1832

0 голосов
/ 23 мая 2018

Я думаю, из-за ExcelParser.Он преобразует поле заголовка даты в несколько случайных чисел.

Поэтому, чтобы оно работало в соответствии с вашими требованиями, добавьте заголовок столбца в двойные кавычки.

Пример: "2018-05-23"

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

...