首頁  >  文章  >  php框架  >  如何使用Hyperf框架進行Excel導出

如何使用Hyperf框架進行Excel導出

WBOY
WBOY原創
2023-10-20 15:15:191222瀏覽

如何使用Hyperf框架進行Excel導出

如何使用Hyperf框架進行Excel導出

匯出資料到Excel是我們在開發過程中經常遇到的需求之一。在Hyperf框架下,我們可以藉助第三方函式庫PhpSpreadsheet來實現Excel導出的功能。本文將詳細介紹如何使用Hyperf框架進行Excel導出,並提供具體的程式碼範例。

一、安裝依賴函式庫

首先,需要在Hyperf框架專案中安裝PhpSpreadsheet函式庫。在專案根目錄下執行以下指令:

composer require phpoffice/phpspreadsheet

二、建立匯出類別

我們先建立一個Excel匯出的類,用於封裝匯出功能的具體實作。在AppUtils目錄下建立ExcelExporter.php文件,程式碼如下:

namespace AppUtils;

use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

class ExcelExporter
{
    public static function export($data, $fileName, $headers, $title = null)
    {
        // 创建Excel对象
        $spreadsheet = new Spreadsheet();
        
        // 设置工作表名称
        $worksheet = $spreadsheet->getActiveSheet();
        $worksheet->setTitle($title ?: 'Sheet1');

        // 写入表头
        foreach ($headers as $key => $header) {
            $column = chr(65 + $key); // 列名,如A、B、C...
            $worksheet->setCellValue($column.'1', $header);
        }

        // 写入数据
        $row = 2; // 数据行起始行号
        foreach ($data as $item) {
            foreach ($item as $key => $value) {
                $column = chr(65 + $key); // 列名,如A、B、C...
                $worksheet->setCellValue($column.$row, $value);
            }
            $row++;
        }

        // 导出Excel文件
        $writer = new Xlsx($spreadsheet);
        $writer->save($fileName);
    }
}

以上程式碼中,export方法接收四個參數:

  • $data: 需要匯出的數據,二維陣列
  • $fileName: 匯出的檔案名,含檔案路徑
  • $headers: 表頭,一維陣列
  • $title: 工作表名稱,可選參數,預設為Sheet1

三、使用導出類別

完成導出類別的編寫後,我們可以在需要匯出資料的控制器中進行呼叫。以下是一個範例,以匯出使用者資訊為例:

<?php

namespace AppController;

use AppUtilsExcelExporter;
use HyperfHttpServerAnnotationAutoController;

/**
 * @AutoController()
 */
class UserController extends AbstractController
{
    public function export()
    {
        // 模拟数据
        $data = [
            ['id' => 1, 'name' => 'Tom', 'age' => 18],
            ['id' => 2, 'name' => 'Jerry', 'age' => 20],
            ['id' => 3, 'name' => 'Alice', 'age' => 22],
        ];

        // 表头
        $headers = ['ID', '姓名', '年龄'];

        // 文件名
        $fileName = '/path/to/export/user.xlsx';

        // 调用导出方法
        ExcelExporter::export($data, $fileName, $headers, '用户信息');

        return $this->success('导出成功');
    }
}

在上述範例中,我們模擬了一組使用者資訊數據,設定了表頭和匯出的檔案名稱。呼叫匯出方法後,成功匯出Excel文件,並傳回匯出成功的提示。

四、總結

使用Hyperf框架進行Excel導出,可以利用PhpSpreadsheet函式庫提供的功能,透過封裝導出類別來實現。透過以上程式碼範例,我們可以快速實現資料匯出到Excel檔案的功能。同時,我們也可以根據實際需求對導出類別進行擴展,以滿足更多複雜的導出需求。

以上是如何使用Hyperf框架進行Excel導出的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn