【问题标题】:Laravel Excel exports date and time as customLaravel Excel 将日期和时间导出为自定义
【发布时间】:2022-01-17 16:18:46
【问题描述】:

当使用Laravel Excel 3.1 导出数据时,它应该将日期格式化为日期和时间。但是日期和时间都变成了Custom

我有以下出口:

class Export implements FromView, WithEvents
{
    public static function afterSheet( AfterSheet $event ): void
    {
        $sheet = $event->getSheet();
        $sheet->formatColumn( 'H', NumberFormat::FORMAT_DATE_YYYYMMDD2 );
        $sheet->formatColumn( 'I', NumberFormat::FORMAT_DATE_TIME3 );
        $sheet->formatColumn( 'J', NumberFormat::FORMAT_DATE_TIME3 );
        $sheet->formatColumn( 'L', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'M', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'N', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'O', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'P', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'Q', NumberFormat::FORMAT_TEXT );
    }
}

还有观点:

<td>{{ \Carbon\Carbon::parse( $date->date )->format('Y-m-d') }}</td>
<td>{{ \Carbon\Carbon::parse($publication->start_time)->format('G:i') }}</td>
<td>{{ \Carbon\Carbon::parse($publication->end_time)->format('G:i') }}</td>

也尝试过:

class Export implements FromView, WithEvents
{
    public static function afterSheet( AfterSheet $event ): void
    {
        $sheet = $event->getSheet();
        $sheet->formatColumn( 'H', 'yyyy-mm-dd' );
        $sheet->formatColumn( 'I', 'h:mm' );
        $sheet->formatColumn( 'J', 'h:mm' );
        $sheet->formatColumn( 'L', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'M', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'N', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'O', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'P', NumberFormat::FORMAT_TEXT );
        $sheet->formatColumn( 'Q', NumberFormat::FORMAT_TEXT );
    }
}

使用columnFormats 方法似乎不起作用,因为数据是从视图而不是类中的任何数据方法收集的。

格式确实适用于NumberFormat::FORMAT_TEXT,但NumberFormat::FORMAT_DATE_YYYYMMDD2NumberFormat::FORMAT_DATE_TIME3 将变为Custom 而不是DateTime。所以我的问题是我怎样才能得到一个正确设置datetime 类型的导出?

【问题讨论】:

    标签: laravel laravel-excel


    【解决方案1】:

    显然,当使用以下格式时,它会将列设置为正确的类型。

    # date time
    NumberFormat FORMAT_DATE_YYYYMMDDSLASH FORMAT_DATE_TIME8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      相关资源
      最近更新 更多