Hyperf フレームワークを使用して Excel をインポートする方法、特定のコード例が必要です
はじめに:
情報化の発展に伴い、スプレッドシートは重要な役割を果たします。私たちの日々の仕事は重要な役割を果たしています。開発プロセス中に、Excel からシステムにデータをインポートする必要がある状況に遭遇することがよくあります。この記事では、Excel インポートに Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。
1. 必要なプラグインをインストールします
Hyperf フレームワークを使用して Excel をインポートする前に、PhpSpreadsheet と hyperf/excel という 2 つのプラグインをインストールする必要があります。前者は強力な PHP スプレッドシート操作ライブラリであり、後者は Hyperf フレームワークの Excel 拡張機能です。 Composer 経由でインストールします:
composer require phpoffice/phpspreadsheet composer require hyperf/excel
2. Excel インポート サービスを作成します。
app/Excel
ディレクトリに Imports
を作成します。をクリックし、Imports
ディレクトリに ExcelImport
という名前の新しいクラスを作成します。このクラスは IlluminateDatabaseEloquentCollection
から継承し、インポートされたデータを保存するために使用されます。
<?php namespace AppExcelImports; use IlluminateSupportCollection; class ExcelImport extends Collection { public function headingRow(): int { return 1; } }
app/Excel
ディレクトリの下に Services
ディレクトリを作成し、Services
の下に新しいディレクトリを作成します。 ExcelService
という名前のディレクトリ クラス。このクラスは、Excel インポート ロジックを実装するための import
メソッドを定義します。
<?php namespace AppExcelServices; use AppExcelImportsExcelImport; use Exception; use HyperfDiAnnotationInject; use PhpOfficePhpSpreadsheetIOFactory; use HyperfExcelEventsAfterWriting; use HyperfExcelWriter; class ExcelService { /** * @Inject * @var Writer */ protected $writer; public function import($file): array { $import = new ExcelImport(); try { $spreadsheet = IOFactory::load($file); $worksheet = $spreadsheet->getActiveSheet(); $import = $worksheet->toArray(); // 将数据导入到ExcelImport $import->push($import); } catch (Exception $exception) { throw new Exception("Error in importing excel: " . $exception->getMessage()); } // 触发事件,将导入的数据派发出去供其他业务逻辑使用 event(new AfterWriting($this->writer, $import)); return $import->all(); } }
3. Excel インポート サービスを使用する
Excel を使用してインポートする必要がある場合は、依存関係の注入を通じて作成したばかりの ExcelService
を使用できます。具体的なコードは次のとおりです:
<?php namespace AppController; use AppExcelServicesExcelService; use PsrContainerContainerInterface; class ExcelController extends AbstractController { /** * @var ExcelService */ protected $excelService; public function __construct(ContainerInterface $container, ExcelService $excelService) { parent::__construct($container); $this->excelService = $excelService; } public function import() { $file = $this->request->file('file'); $filePath = $file->getPathname(); $data = $this->excelService->import($filePath); // 对导入数据进行处理,插入数据库或者其他业务逻辑 return $this->response->success($data); // 返回导入的数据 } }
4. ルーティングの構成
最後に、Excel インポート リクエストを処理するために config/routes.php
ファイルでルーティングを構成します:
<?php use HyperfHttpServerRouterRouter; Router::post('/excel/import', 'AppControllerExcelController@import');
概要:
この記事では、Excel インポートに Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。インポート サービスを作成し、サービス メソッドを呼び出し、ルートを構成することで、Excel データをシステムにインポートする機能を簡単に実装できます。同時に、ビジネス ロジックの要件を満たすために、特定のニーズに応じてインポートされたデータを処理することもできます。この方法を使用すると、開発効率が大幅に向上し、開発プロセスが簡素化されます。
以上がExcelインポートにHyperfフレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。