Laravel

Laravel ExcelでのCSVファイルアップロードがうまくいく場合とうまくいかない場合があるケースの原因と解決法

※本ページはアフィリエイトプログラムによる収益を得ています

Laravel Excelで作ったサイトで、Excelから別名保存で書き出したCSVファイルをアップロードしようとした時にうまくいかないケースがありました。

結論から言うと、ずばり文字コードが原因です。

各種ソフトによって吐き出されるCSV上の文字コードが違うのは盲点でした。

【各種ソフトによる文字コード】
・WindowsのExcelからCSVを書き出した場合:Shift-JIS
・GoolgleスプレッドシートからCSVを書き出した場合:UTF-8
・MacのNumbersからCSVを書き出した場合:UTF-8

で、Laravel Excelのデフォルトの読み込み設定は何になっているかというと

・Laravel Excelデフォルト設定:UTF-8

でした。
Macで開発してGoogleスプレッドシートでCSVを吐き出している自分のファイルではうまくいってたのが、クライアント先のExcelから吐き出したCSVではどうやってもうまくいかない原因がこれでした。

じゃあLaravel Excelのデフォルト設定UTF-8をShift-JIS対応に変更するにはどうするか、これはまた後日追記します。