Maison >cadre php >Swoole >Comment utiliser le framework Hyperf pour l'importation et l'exportation Excel

Comment utiliser le framework Hyperf pour l'importation et l'exportation Excel

王林
王林original
2023-10-25 12:13:471875parcourir

Comment utiliser le framework Hyperf pour limportation et lexportation Excel

Comment utiliser le framework Hyperf pour importer et exporter Excel

Résumé : Cet article présentera comment implémenter les fonctions d'importation et d'exportation de fichiers Excel dans le framework Hyperf et donnera des exemples de code spécifiques.

Mots clés : Framework Hyperf, import Excel, export Excel, exemples de code

Importation
Tout d'abord, nous devons nous assurer que la bibliothèque phpoffice/phpspreadsheet est installée dans le projet. Il peut être installé en exécutant la commande suivante dans le terminal : phpoffice/phpspreadsheet 这个库。可以通过在终端中执行以下命令进行安装:

composer require phpoffice/phpspreadsheet
  1. 创建控制器和路由
    首先,我们需要创建一个控制器来处理导入的逻辑。在 app/Controller 目录下创建一个 ExcelController.php 文件,添加以下代码:
<?php

declare(strict_types=1);

namespace AppController;

use PhpOfficePhpSpreadsheetIOFactory;

class ExcelController
{
    public function import()
    {
        $uploadedFile = $this->request->file('excel_file');

        $spreadsheet = IOFactory::load($uploadedFile->getPathname());
        $worksheet = $spreadsheet->getActiveSheet();
        $data = $worksheet->toArray();

        // 处理导入逻辑
    }
}

然后,在 config/routes.php 文件中添加以下路由:

use AppControllerExcelController;

Router::post('/excel/import', [ExcelController::class, 'import']);
  1. 创建视图
    resources/views 目录中创建一个 import.blade.php 文件,添加以下表单代码:
<form action="/excel/import" method="post" enctype="multipart/form-data">
    <input type="file" name="excel_file">
    <button type="submit">导入</button>
</form>
  1. 处理导入逻辑
    在控制器的 import 方法中,我们使用 PhpSpreadsheet 库加载上传的 Excel 文件,并将其转换为数组格式。然后,我们可以根据实际需求对数据进行处理。

导出
导出Excel文件主要涉及两个步骤:创建Excel文件和下载Excel文件。

  1. 创建Excel文件
    在控制器中,我们可以使用 PhpSpreadsheet 库创建一个 Excel 文件。
use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

public function export()
{
    $spreadsheet = new Spreadsheet();
    $worksheet = $spreadsheet->getActiveSheet();

    // 设置表头
    $worksheet->setCellValue('A1', '姓名')
        ->setCellValue('B1', '年龄')
        ->setCellValue('C1', '性别');

    // 设置数据行
    $data = [
        ['张三', '20', '男'],
        ['李四', '30', '女'],
    ];
    $row = 2;
    foreach ($data as $item) {
        $column = 'A';
        foreach ($item as $value) {
            $worksheet->setCellValue($column . $row, $value);
            $column++;
        }
        $row++;
    }

    // 保存文件
    $writer = new Xlsx($spreadsheet);
    $writer->save('storage/export.xlsx');
}
  1. 下载Excel文件
    导出完成后,我们可以通过设置响应头信息实现文件下载的功能。
use PsrHttpMessageStreamInterface;
use SymfonyComponentConsoleOutputStreamOutput;

public function download()
{
    $file = 'storage/export.xlsx';
    
    return $this->response->withHeader('Content-Disposition', 'attachment;filename=' . $file)
        ->withHeader('Pragma', 'public')
        ->withHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
        ->withHeader('Content-Length', filesize($file))
        ->withBody(new StreamOutput(fopen($file, 'r')));
}

在路由文件中添加以下路由:

Router::get('/excel/download', [ExcelController::class, 'download']);

将导出的文件存储在 storage 目录下,并通过浏览器访问 /excel/downloadrrreee

  1. Créer un contrôleur et une route Tout d'abord, nous devons créer un contrôleur pour gérer la logique importée. Créez un fichier ExcelController.php dans le répertoire app/Controller et ajoutez le code suivant :
rrreee

Ensuite, dans config/ routes Ajoutez la route suivante au fichier .php :
rrreee

  1. Créez une vue Créez un import.blade dans les <code>ressources/vues code>.php, ajoutez le code du formulaire suivant :
rrreee
  1. Traitez la logique d'importation 🎜Dans le import code> du contrôleur, nous utilisons la bibliothèque <code>PhpSpreadsheet pour charger le fichier Excel téléchargé et le convertir au format tableau. Ensuite, nous pouvons traiter les données en fonction des besoins réels.
🎜Exporter🎜L'exportation de fichiers Excel implique principalement deux étapes : la création du fichier Excel et le téléchargement du fichier Excel. 🎜
  1. Créer un fichier Excel🎜Dans le contrôleur, nous pouvons créer un fichier Excel en utilisant la bibliothèque PhpSpreadsheet.
rrreee
  1. Téléchargez le fichier Excel 🎜Une fois l'exportation terminée, nous pouvons implémenter la fonction de téléchargement de fichier en définissant les informations d'en-tête de réponse.
rrreee🎜Ajoutez l'itinéraire suivant dans le fichier de routage : 🎜rrreee🎜Stockez le fichier exporté dans le répertoire storage et accédez à /excel/download via le navigateur pour télécharger le fichier. 🎜🎜Résumé🎜Cet article présente en détail comment utiliser le framework Hyperf pour implémenter les fonctions d'importation et d'exportation de fichiers Excel, et donne des exemples de code spécifiques. Grâce à une configuration et un codage simples, nous pouvons rapidement implémenter l'importation et l'exportation Excel dans le framework Hyperf pour améliorer l'efficacité du développement. 🎜

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