Maison  >  Article  >  cadre php  >  Comment utiliser le framework Hyperf pour l'importation Excel

Comment utiliser le framework Hyperf pour l'importation Excel

王林
王林original
2023-10-21 08:42:551445parcourir

Comment utiliser le framework Hyperf pour limportation Excel

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

  1. 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;
     }
    }
  2. 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

3. Utiliser le service d'importation Excel🎜Partout où nous avons besoin d'utiliser l'importation Excel, nous pouvons utiliser le 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn