Invalid datetime format: 1292 Incorrect date value: Laravel Excel日付インポートエラー対策

Laravelと連携:Excel・PDF・Google

maatwebsiteを使って日付が入ったExcelをインポートする際、エラーになることがあります

エラーを解決するには、Carbonを使って、Excelの日時フォーマットを変更しましょう。

たとえば、次のようなエクセルファイルをインポートするとします。

日付部分は、セルの書式設定 で日付に変換してあります。

【インポートするエクセルファイル】

「販売日」のデータ型は、dateに設定してあります。

このような場合、このInvalid datetime formatエラーが発生します。

エラーを避けるには、次のように、インポートファイルの日付部分をCarbonを使って変更します。

【DangoImportファイルの設定】

なおコントローラーは、通常どおりの書き方です。

【DangoImportファイルのためのコントローラー】

インポートファイルでの書き方のポイントを解説していきます。

Excel Invalid datetime formatエラー対策 ポイント解説

もしCarbonは日時を扱う際に便利なライブラリですが、もしまだインストールしていない場合には、最初にインストールをします。

Importファイルの先頭に、Carbonのuse宣言を加えます。

日付部分のカラムのインポートを指定する部分で、Carbonを使って、フォーマットを変更します。

これで、次のような形でインポートできます。

【インポート後のデータベーステーブル】

じゅんこ
じゅんこ

無事エラーが解決したら嬉しいです。

さいごに

なおmaatwebsiteを使ってExcelをインポートする方法・重複エラー対策・日付空欄時対策など、関連記事で色々と取り上げております。

Excelのインポートは、色々と思いがけないエラーが起こりますよね。

困ったときに、参考にしてみてください。

コメント

タイトルとURLをコピーしました