Laravel は一般的に使用される PHP 開発フレームワークであり、迅速な開発と容易なメンテナンスの特徴を備えています。実際の開発では、データのインポートとエクスポート、具体的には Excel ファイルのインポートとエクスポートが発生することがよくあります。 Laravel はデータのインポートとエクスポートをどのように実装しますか?この記事では、Laravelを使用してExcelファイルをインポートおよびエクスポートする方法を紹介します。
1. Laravel Excel のインストール
Laravel Excel は、Excel ファイルのインポートとエクスポートを簡単に行うことができる PHPExcel のパッケージです。したがって、インポートとエクスポートを実装する前に、まず Laravel Excel をインストールする必要があります。
Composer を通じてインストールするには、次のコマンドを実行します:
composer require maatwebsite/excel
インストールが完了したら、次の内容を config/app.php
に追加する必要があります:
'providers' => [ // ... MaatwebsiteExcelExcelServiceProvider::class, ], 'aliases' => [ // ... 'Excel' => MaatwebsiteExcelFacadesExcel::class, ]
2. Excel ファイルのエクスポート
まず、Excel ファイルのエクスポート方法を見てみましょう。 Laravel Excel では、データベース データ モデルを定義する方法と同様に、Excel ファイルのエクスポートを定義する方法が提供されます。 Excel テンプレートを使用してエクスポートされた Excel ファイルの内容を定義し、データをテンプレートに入力できます。具体的な実装方法は以下のとおりです:
1. Excel ファイルのテンプレートを定義します
プロジェクトのルート ディレクトリで次のコマンドを実行します:
php artisan make:export UsersExport --model=User
このコマンドはapp/Exports ディレクトリに以下の UsersExport という名前のクラスを生成します。このクラスは FromModel インターフェイスを実装し、モデルから Excel ファイルにデータをエクスポートするために使用されます。
2. データを入力する
Excel ファイル テンプレートを定義した後、コードを使用してデータを入力する必要があります。コードは次のように実装されます:
namespace AppHttpControllers; use AppExportsUsersExport; use AppHttpControllersController; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function export() { return Excel::download(new UsersExport, 'users.xlsx'); } }
3. Excel ファイルの生成
データの入力が完了したら、Excel ファイルを生成できます。エクスポート操作を実行するには、コードを次のように実装します。
Excel::download(new UsersExport, 'users.xlsx');
上記のコードは、users.xlsx という名前の Excel ファイルを生成します。
3. Excel ファイルのインポート
Excel ファイルのインポートは Excel ファイルのエクスポートと似ていますが、Excel ファイルのデータをデータベースにインポートするためのデータ モデルも必要です。具体的な実装方法は次のとおりです:
1. Excel ファイル テンプレートの定義
まず、データ入力を実装するために ContractsFromView インターフェイスを定義する必要があります。コードは次のように実装されます。
namespace AppImports; use IlluminateContractsViewView; use MaatwebsiteExcelConcernsFromView; class UsersImport implements FromView { private $users; public function __construct(array $users) { $this->users = $users; } public function view(): View { return view('exports.users', [ 'users' => $this->users ]); } }
<table> <thead> <tr> <th>Name</th> <th>Email</th> <th>Gender</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td>{{ $user['name'] }}</td> <td>{{ $user['email'] }}</td> <td>{{ $user['gender'] }}</td> </tr> @endforeach </tbody> </table>
Excel::import 関数を使用してデータをデータベースにインポートできます。コードは次のとおりです。
namespace AppHttpControllers; use AppImportsUsersImport; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function import() { $file = request()->file('file'); $users = Excel::toArray(new UsersImport, $file); // 可以在此处将 $users 插入数据库 } }
// でデータベースに挿入できます。$users はデータベース に挿入できます。
以上がLaravelでExcelをインポートおよびエクスポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。