Maatwebsiteを使用したデータのインポートとエクスポート


  1. Maatwebsiteのインストール: まず、LaravelプロジェクトにMaatwebsiteをインストールする必要があります。ターミナルを開き、以下のコマンドを実行します。
composer require maatwebsite/excel
  1. データのインポート: Maatwebsiteを使用してデータをインポートするには、以下の手順に従います。
  • インポートするデータのフォーマットに合わせたモデルを作成します。例えば、CSVファイルをインポートする場合は、app/ImportsディレクトリにCSVImport.phpという名前のクラスを作成します。
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToModel;
class CSVImport implements ToModel
{
    public function model(array $row)
    {
        // データベースモデルにデータを保存する処理を記述します
    }
}
  • インポートするコントローラを作成します。例えば、ImportController.phpという名前のコントローラを作成します。
namespace App\Http\Controllers;
use App\Imports\CSVImport;
use Maatwebsite\Excel\Facades\Excel;
class ImportController extends Controller
{
    public function import()
    {
        Excel::import(new CSVImport, 'ファイルのパス');
        return 'データのインポートが完了しました';
    }
}
  • ルートを定義し、インポート処理を呼び出すためのURLを作成します。
use App\Http\Controllers\ImportController;
Route::get('/import', [ImportController::class, 'import']);

これで、/importにアクセスすることでデータのインポートが実行されます。

  1. データのエクスポート: Maatwebsiteを使用してデータをエクスポートするには、以下の手順に従います。
  • エクスポートするデータに合わせたエクスポートクラスを作成します。例えば、ユーザーデータをCSVファイルとしてエクスポートする場合は、app/ExportsディレクトリにUserExport.phpという名前のクラスを作成します。
namespace App\Exports;
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UserExport implements FromCollection
{
    public function collection()
    {
        return User::all();
    }
}
  • エクスポートするコントローラを作成します。例えば、ExportController.phpという名前のコントローラを作成します。
namespace App\Http\Controllers;
use App\Exports\UserExport;
use Maatwebsite\Excel\Facades\Excel;
class ExportController extends Controller
{
    public function export()
    {
        return Excel::download(new UserExport, 'users.csv');
    }
}
  • ルートを定義し、エクスポート処理を呼び出すためのURLを作成します。
use App\Http\Controllers\ExportController;
Route::get('/export', [ExportController::class, 'export']);

これで、/exportにアクセスすることでデータのエクスポートが実行され、users.csvファイルがダウンロードされます。