【发布时间】: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_YYYYMMDD2 和NumberFormat::FORMAT_DATE_TIME3 将变为Custom 而不是Date 和Time。所以我的问题是我怎样才能得到一个正确设置date 和time 类型的导出?
【问题讨论】:
标签: laravel laravel-excel