2

laravel-excelを使用して、データベースのデータを Excel ワークシートにエクスポートしています。日付を含む列は Excel で日付として解釈されないため、laravel-excel を使用してこの Excel ファイルをインポートすると、これらの列は正しく解析およびフォーマットされません。

テーブルの例:

table name: items
id  |   name    | some_date
===========================
1     Boxes       2014-11-13 17:00:00
2     Pickles     2016-12-01 13:30:00
...

私のLaravelコード:

Excel::create('SomeTitle', function($excel) {

    $items = Item::all()->toArray();

    $excel->sheet('SheetName', function($sheet) use($items) {
        $sheet->fromArray($items, null, 'A1', true);
    });
})->export('xls');

これで、エクスポートされた Excel ファイルで、列 C (「some_date」) に のような日付が含まれます2014-11-13 17:00:00が、Excel はこれを日付として認識しません。そのため、laravel-excel を使用してタイルをインポートすると、自動的に変換されません。Carbonのインスタンスに。

Excelファイルを再度使用$sheet->setColumnFormat(array('C' => 'yyyy-mm-dd'));してインポートすると、laravel-excelは日付を認識してCarbonインスタンスに変換しますが、日付、時刻、曜日は完全にずれています!

Excel が列内のセルを日付として認識する唯一の方法は、列をクリックしてクリックすることです。その後、Excel は自動的に日付に変換します。

some_dateファイルをエクスポートするときに列が自動的に日付に変換されるようにするにはどうすればよいですか?

4

1 に答える 1