ビジネスや金融の分野で Excel ファイルが広く使用されるようになったことで、Excel ファイルを Web アプリケーションに統合することは、開発者に必要なスキルの 1 つになりました。 Laravel は人気のある PHP フレームワークであるため、そのエコシステムには Excel ファイルの読み書きに役立つパッケージが多数あります。この記事では、Laravel Excel と PHPOffice ライブラリを使用して、Laravel アプリケーションで Excel ファイルを読み書きする方法を紹介します。
Laravel Excel とは何ですか?
Laravel Excel は、Laravel フレームワーク用に開発された強力な Excel 処理ツールです。このツールは、Excel ファイルのインポートとエクスポートを簡単に行うのに役立つ使いやすい API を提供します。このツールの主な利点の 1 つは、Excel ソフトウェアに依存せずに Excel ファイルを直接操作できることです。
Laravel Excel のインストールは Composer を通じて実行できます。ターミナルで Laravel プロジェクトのディレクトリに移動し、次の Composer コマンドを実行します。
composer require maatwebsite/excel
このコマンドは、Laravel Excel の最新バージョンを Packagist からダウンロードし、インストール プロセスを自動的に完了します。
Laravel Excel を使用して Excel ファイルをエクスポートするには?
Laravel Excel は、新しい Excel ファイルを作成したり、既存の Excel ファイルを開いて編集したりできるプロキシ クラスである Excel クラスを提供します。このクラスを使用して、Laravel アプリケーションで Excel ファイルをエクスポートできます。
プロジェクトに新しい Excel ファイルを作成します。Laravel Excel が提供する次のテンプレートを使用できます:
<?php namespace AppExports; use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsWithHeadings; class ExampleExport implements FromCollection, WithHeadings { public function headings(): array { return [ 'ID', 'Name', 'Email', 'Phone', ]; } /** * @return IlluminateSupportCollection */ public function collection() { return User::select('id', 'name', 'email', 'phone')->get(); } }
上記のコードでは、ExampleExport という名前のクラスを定義します。このクラスは、Excel ファイルの生成に必要なメソッドを提供する FromCollection インターフェイスと WithHeadings インターフェイスを使用します。
Heading() メソッドでは、Excel ファイルのヘッダーを定義します。これらのヘッダーは Excel ワークシートの最初の行にリストされます。 collect() メソッドでは、データベースからユーザー レコードを取得し、クラスを呼び出したコントローラーにそれを返します。
Excel ファイルをエクスポートするには、次のようにコントローラー メソッドで ExampleExport をインスタンス化します。
public function export() { return Excel::download(new ExampleExport, 'users.xlsx'); }
上記のコードでは、Laravel Excel が提供する download() メソッドを使用して、ExampleExport からエクスポートします。エクセルファイル。このメソッドには 2 つのパラメータが必要です。最初のパラメータは ExampleExport インスタンス、2 番目のパラメータは Excel ファイル名です。
ブラウザでエクスポート メソッドの URL にアクセスすると、users.xlsx ファイルをダウンロードするように求められます。
Laravel Excel を使用して Excel ファイルをインポートするにはどうすればよいですか?
Excel ファイルを読み取り、そのデータをデータベースにインポートする場合、Laravel Excel が提供する import() メソッドを使用できます。このメソッドは、ファイル オブジェクト、タスク コールバック、およびワークシート名という 3 つのパラメーターを受け入れます。
Excel ファイルをインポートする方法を示すために、以下に示すように UserImport というクラスを作成します。
<?php namespace AppImports; use AppUser; use MaatwebsiteExcelConcernsToModel; class UserImport implements ToModel { public function model(array $row) { return new User([ 'name' => $row[0], 'email' => $row[1], 'phone' => $row[2], ]); } }
上記のコードでは、ToModel インターフェイスを使用して UserImport クラスを実装しました。 ToModel インターフェイスは、Excel データの各行をモデル オブジェクトに変換する必須の model() メソッドを提供します。上記のコードでは、Excel ファイルから最初の 3 つの列を解析し、それらを使用して新しいユーザー レコードを作成しました。
以下に示すように、コントローラーで import() メソッドを使用して Excel ファイルをインポートします。
public function import(Request $request) { $file = $request->file('file'); Excel::import(new UserImport, $file); return redirect()->back()->with('success', 'Excel file imported successfully.'); }
上記のコードでは、アップロードされた Excel ファイル オブジェクトを取得し、Laravel Excel のオブジェクトに渡します。 import( ) メソッドを使用して、UserImport クラスにインポートします。インポートが成功すると、システムは「Excel ファイルは正常にインポートされました」という成功メッセージを含むリダイレクト応答をユーザーに送信します。
PHPOffice ライブラリを使用して Excel ファイルを読み書きするにはどうすればよいですか?
PHPOffice は、Excel、Word、PowerPoint など、さまざまな種類の Office ファイルの読み取りと書き込みに使用される PHP ライブラリです。 PHPOffice は、Laravel Excel とは異なり、特定のフレームワーク用に開発されていないため、あらゆる PHP アプリケーションで使用できます。
PHPOffice をインストールする前に、PHP Zip 拡張機能と PHP XML 拡張機能がインストールされていることを確認する必要があります。
Composer を使用して PHPOffice のスプレッドシート ライブラリをインストールするには、次のコマンドを使用できます:
composer require phpoffice/phpspreadsheet
新しい Excel ファイルを作成するには、次のコードを使用できます:
<?php use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'Hello World!'); $sheet->setCellValue('B1', 'This is PHPOffice.'); $writer = new Xlsx($spreadsheet); $writer->save('hello.xlsx');
上記のコードでは、まず新しいスプレッドシートを作成し、その最初の行の最初の 2 列に「Hello World!」セルと「This is PHPOffice.」セルを追加します。次に、スプレッドシートを hello.xlsx ファイルに保存します。
既存の Excel ファイルを開いて編集するには、次のコードを使用できます。
<?php use PhpOfficePhpSpreadsheetIOFactory; $spreadsheet = IOFactory::load('hello.xlsx'); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('C1', 'This cell has been added.'); $writer = new Xlsx($spreadsheet); $writer->save('hello.xlsx');
上記のコードでは、IOFactory クラスを使用して既存の Excel ファイルをディスクからロードします。次に、ファイルのアクティブなワークシートを開き、そこに新しいセルを追加しました。最後に、更新内容を元のファイルに保存します。
結論
この記事では、Laravel Excel と PHPOffice ライブラリを使用して、Laravel アプリケーションで Excel ファイルを読み書きする方法を紹介しました。 Laravel Excel を使用して Excel ファイルをエクスポートおよびインポートする方法と、PHPOffice ライブラリを使用して既存の Excel ファイルを作成、開き、編集する方法を学びました。これらのテクニックを使用すると、Excel ファイルを Laravel アプリケーションに簡単に統合できるようになります。
以上がLaravel 開発: Laravel Excel と PHPOffice を使用して Excel ファイルを読み書きする方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。