ホームページ  >  記事  >  PHPフレームワーク  >  Excel のインポートとエクスポートに Hyperf フレームワークを使用する方法

Excel のインポートとエクスポートに Hyperf フレームワークを使用する方法

王林
王林オリジナル
2023-10-25 12:13:471827ブラウズ

Excel のインポートとエクスポートに Hyperf フレームワークを使用する方法

Hyperf フレームワークを使用して Excel をインポートおよびエクスポートする方法

要約: この記事では、Hyperf フレームワークで Excel ファイルのインポートおよびエクスポート機能を実装する方法を紹介します。 、具体的な詳細を示します。コード例。

キーワード: Hyperf フレームワーク、Excel インポート、Excel エクスポート、コード例

Import
まず、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. Create a view
    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 ファイルのダウンロードの 2 つの手順が含まれます。

  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/download を使用してファイルをダウンロードできます。

概要
この記事では、Hyperf フレームワークを使用して Excel ファイルのインポートおよびエクスポート機能を実装する方法を詳しく紹介し、具体的なコード例を示します。簡単な設定とコーディングにより、Hyperf フレームワークで Excel のインポートとエクスポートを迅速に実装し、開発効率を向上させることができます。

以上がExcel のインポートとエクスポートに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。