Laravelを使用してExcelファイルを配列に読み込む方法


  1. ライブラリのインストール: Laravelでは、Excelファイルを処理するためにいくつかの便利なライブラリが存在します。例えば、"maatwebsite/excel"パッケージが一般的に使用されます。まず、Composerを使用してこのパッケージをインストールします。

    composer require maatwebsite/excel
  2. Excelファイルのアップロード: LaravelでExcelファイルをアップロードするために、フォームを作成し、ファイルの受け取りを許可する必要があります。storage/app/publicディレクトリにファイルを保存するためのストレージの設定も行ってください。

    // フォームの作成
    <form method="POST" action="/upload" enctype="multipart/form-data">
       @csrf
       <input type="file" name="file">
       <button type="submit">アップロード</button>
    </form>
    // ストレージの設定(config/filesystems.php)
    'disks' => [
       'public' => [
           'driver' => 'local',
           'root' => storage_path('app/public'),
           'url' => env('APP_URL').'/storage',
           'visibility' => 'public',
       ],
    ],
  3. Excelファイルの読み込み: アップロードされたExcelファイルを配列に読み込むために、以下のようなコードを使用します。

    use Maatwebsite\Excel\Facades\Excel;
    public function import()
    {
       $path = storage_path('app/public/' . $filename); // $filenameはアップロードされたファイル名
       $data = Excel::toArray([], $path)[0];
       // データの処理
       // ...
       return view('import', compact('data'));
    }

    この例では、Maatwebsite\Excel\Facades\Excelファサードを使用してExcelファイルを読み込んでいます。toArrayメソッドを使用して、Excelファイルのデータを配列に変換します。変数$dataにはExcelファイルの最初のシートのデータが格納されます。必要に応じてデータを処理してください。

  4. ビューの作成: データを表示するためのビューを作成します。例えば、import.blade.phpというファイルを作成し、以下のようなコードを追加します。

    <table>
       @foreach($data as $row)
           <tr>
               @foreach($row as $cell)
                   <td>{{ $cell }}</td>
               @endforeach
           </tr>
       @endforeach
    </table>

    この例では、ExcelファイルのデータをHTMLのテーブル形式で表示しています。必要に応じてデザインや表示方法をカスタマイズしてください。

以上の手順を実行することで、LaravelでExcelファイルを配列に読み込むことができます。これにより、Excelファイルのデータを簡単に処理したり、表示したりすることができます。