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

如何使用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' =&gt; 'Tom', 'age' =&gt; 18],             ['id' =&gt; 2, 'name' =&gt; 'Jerry', 'age' =&gt; 20],             ['id' =&gt; 3, 'name' =&gt; 'Alice', 'age' =&gt; 22],         ];          // 表頭         $headers = ['ID', '姓名', '年齡'];          // 文件名         $fileName = '/path/to/export/user.xlsx';          // 調用導出方法         ExcelExporter::export($data, $fileName, $headers, '用戶信息');          return $this-&gt;success('導出成功');     } }

在以上示例中,我們模擬了一組用戶信息數據,設置了表頭和導出的文件名。調用導出方法后,成功導出Excel文件,并返回導出成功的提示。

四、總結

使用Hyperf框架進行Excel導出,可以利用PhpSpreadsheet庫提供的功能,通過封裝導出類來實現。通過以上代碼示例,我們可以快速實現數據導出到Excel文件的功能。同時,我們也可以根據實際需求對導出類進行擴展,以滿足更多復雜的導出需求。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享