- Maatwebsiteのインストール: まず、LaravelプロジェクトにMaatwebsiteをインストールする必要があります。ターミナルを開き、以下のコマンドを実行します。
composer require maatwebsite/excel
- データのインポート: 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
にアクセスすることでデータのインポートが実行されます。
- データのエクスポート: 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
ファイルがダウンロードされます。