Heim >PHP-Framework >Swoole >So verwenden Sie das Hyperf-Framework für den Excel-Import und -Export

So verwenden Sie das Hyperf-Framework für den Excel-Import und -Export

王林
王林Original
2023-10-25 12:13:471875Durchsuche

So verwenden Sie das Hyperf-Framework für den Excel-Import und -Export

So verwenden Sie das Hyperf-Framework zum Importieren und Exportieren von Excel

Zusammenfassung: In diesem Artikel wird erläutert, wie Sie die Import- und Exportfunktionen von Excel-Dateien im Hyperf-Framework implementieren, und es werden spezifische Codebeispiele gegeben.

Schlüsselwörter: Hyperf-Framework, Excel-Import, Excel-Export, Codebeispiele

Import
Zunächst müssen wir sicherstellen, dass die phpoffice/phpspreadsheet-Bibliothek im Projekt installiert ist. Es kann installiert werden, indem der folgende Befehl im Terminal ausgeführt wird: 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. Controller und Route erstellen Zuerst müssen wir einen Controller erstellen, um die importierte Logik zu verarbeiten. Erstellen Sie eine ExcelController.php-Datei im Verzeichnis app/Controller und fügen Sie den folgenden Code hinzu:
rrreee

Dann in config/ Routen Fügen Sie der .php-Datei die folgende Route hinzu:
rrreee

  1. Create a viewCreate an import.blade in the <code>resources/views code>-Verzeichnis. php-Datei, fügen Sie den folgenden Formularcode hinzu:
rrreee
  1. Verarbeiten Sie die Importlogik 🎜Im import code>-Methode des Controllers verwenden wir die <code>PhpSpreadsheet-Bibliothek, um die hochgeladene Excel-Datei zu laden und sie in ein Array-Format zu konvertieren. Anschließend können wir die Daten entsprechend dem tatsächlichen Bedarf verarbeiten.
🎜Exportieren🎜Das Exportieren von Excel-Dateien umfasst hauptsächlich zwei Schritte: Erstellen der Excel-Datei und Herunterladen der Excel-Datei. 🎜
  1. Excel-Datei erstellen🎜Im Controller können wir mithilfe der PhpSpreadsheet-Bibliothek eine Excel-Datei erstellen.
rrreee
  1. Excel-Datei herunterladen 🎜Nachdem der Export abgeschlossen ist, können wir die Datei-Download-Funktion implementieren, indem wir die Antwort-Header-Informationen festlegen.
rrreee🎜Fügen Sie die folgende Route in der Routing-Datei hinzu: 🎜rrreee🎜Speichern Sie die exportierte Datei im Verzeichnis storage und greifen Sie über den Browser auf /excel/download zu um die Datei herunterzuladen. 🎜🎜Zusammenfassung🎜In diesem Artikel wird detailliert beschrieben, wie Sie mit dem Hyperf-Framework die Import- und Exportfunktionen von Excel-Dateien implementieren, und es werden spezifische Codebeispiele aufgeführt. Durch einfache Konfiguration und Codierung können wir den Excel-Import und -Export im Hyperf-Framework schnell implementieren und so die Entwicklungseffizienz verbessern. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Hyperf-Framework für den Excel-Import und -Export. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn