卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章24354本站已运行3512

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

卓越飞翔博客
上一篇: 如何在uniapp中实现在线编辑和富文本功能
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏