Comment utiliser le framework Hyperf pour l'import Excel, des exemples de code spécifiques sont nécessaires
Introduction :
Avec le développement de l'informatisation, les feuilles de calcul jouent un rôle important dans notre travail quotidien. Au cours du processus de développement, nous rencontrons souvent des situations dans lesquelles nous devons importer des données d'Excel dans le système. Cet article explique comment utiliser le framework Hyperf pour l'importation Excel et fournit des exemples de code spécifiques.
1. Installez les plug-ins nécessaires
Avant d'utiliser le framework Hyperf pour importer Excel, nous devons installer deux plug-ins, à savoir PhpSpreadsheet et hyperf/excel. La première est une puissante bibliothèque d'opérations de feuille de calcul PHP et la seconde est une extension Excel du framework Hyperf. Installez via Composer :
composer require phpoffice/phpspreadsheet composer require hyperf/excel
2. Créez un service d'importation Excel
Créez le répertoire Imports
sous le répertoire app/Excel
et ajoutez-le dans Imports
Créez une nouvelle classe dans le répertoire code> et nommez-la ExcelImport
. Cette classe hérite de IlluminateDatabaseEloquentCollection
et sera utilisée pour stocker les données importées. 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
。该类中定义了一个import
方法,用于实现Excel导入的逻辑。
<?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(); } }
三、使用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); // 返回导入的数据 } }
四、配置路由
最后,在config/routes.php
<?php use HyperfHttpServerRouterRouter; Router::post('/excel/import', 'AppControllerExcelController@import');
Créez le répertoire Services
sous le répertoire app/Excel
, et créez une nouvelle classe sous le répertoire Services
, Nommez-le ExcelService
. Cette classe définit une méthode import
pour implémenter la logique d'importation Excel.
rrreee
ExcelService
qui vient d'être créé via l'injection de dépendances. Le code spécifique est le suivant : 🎜rrreee🎜 4. Configurez le routage 🎜Enfin, configurez le routage dans le fichier config/routes.php
pour gérer les demandes d'import Excel : 🎜rrreee🎜Résumé : 🎜Cet article présente comment pour utiliser le framework Hyperf, effectue une importation Excel et fournit des exemples de code spécifiques. En créant un service d'importation, en appelant des méthodes de service et en configurant des itinéraires, nous pouvons facilement implémenter la fonction d'importation de données Excel dans le système. Dans le même temps, nous pouvons également traiter les données importées en fonction de besoins spécifiques pour répondre aux exigences de la logique métier. Grâce à cette méthode, l'efficacité du développement peut être considérablement améliorée et le processus de développement simplifié. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!