如何使用Hyperf框架进行Excel导出

来源:undefined 2024-12-17 01:39:30 1011

如何使用Hyperf框架进行Excel导出

导出数据到Excel是我们在开发过程中经常遇到的需求之一。在Hyperf框架下,我们可以借助第三方库PhpSpreadsheet来实现Excel导出的功能。本文将详细介绍如何使用Hyperf框架进行Excel导出,并提供具体的代码示例。

一、安装依赖库

首先,需要在Hyperf框架项目中安装PhpSpreadsheet库。在项目根目录下执行以下命令:

1

composer require phpoffice/phpspreadsheet

登录后复制

我们首先创建一个Excel导出的类,用于封装导出功能的具体实现。在AppUtils目录下创建ExcelExporter.php文件,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

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

三、使用导出类

完成导出类的编写后,我们可以在需要导出数据的控制器中进行调用。以下是一个示例,以导出用户信息为例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<?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文件的功能。同时,我们也可以根据实际需求对导出类进行扩展,以满足更多复杂的导出需求。

以上就是如何使用Hyperf框架进行Excel导出的详细内容,更多请关注php中文网其它相关文章!

最新文章