代码之家  ›  专栏  ›  技术社区  ›  Martin

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

  •  1
  • Martin  · 技术社区  · 6 年前

    我有一个与Laravel Excel相关的问题。我在标题中填写了日期,例如:2018-05-23。但当我使用Excel扩展名通过以下方式阅读时:

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

    扩展名不将标题日期视为日期。相反,它将日期转换为一些数字-例如: 43243 .

    这是 dd 工作表:

    enter image description here

    重要提示:当日期在普通行(不在标题中)中时,日期转换良好。


    Laravel Excel(maatwebsite/excel)版本- 小精灵
    Laravel版本- 五点五

    2 回复  |  直到 6 年前
        1
  •  2
  •   Chiru Adi    6 年前

    我想是因为ExcelParser。它将日期标题字段转换为一些随机数字。

    所以为了满足您的需求,可以在双引号中添加列标题。

    示例:“2018-05-23”

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

        2
  •  3
  •   Jakhongir    5 年前

    这些数字来自Excel本身,数据以数值形式存储在Excel中。 http://www.cpearson.com/excel/datetime.htm

    为了 拉拉维尔 框架 五点六 maatwebsite/excel网站 程序包版本 三点一 ,若要将日期从Excel数字转换为普通日期格式,此函数 PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateFromExcel) 可以使用。它接受整数(Excel日期)并返回日期时间对象。

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

    推荐文章