c语言编程笔录

首页 >   > 笔记大全

笔记大全

【分享案例】ThinkPHP6.0 导出 Excel

更新时间:2024-01-23

ThinkPHP6.0 导出 Excel

在Web开发中,经常需要将数据导出为Excel文件,方便用户进行查看和分析。在ThinkPHP6.0中,我们可以利用PHPExcel库来实现这个功能。

需求分析

首先,我们需要明确导出Excel的数据来源。可以是数据库中的数据、API返回的数据或者其他数据源。其次,我们需要确定导出Excel的字段和格式。这包括表头和每一列的数据格式。

我们以一个简单的例子来说明:假设我们需要导出用户的姓名、年龄和性别信息。我们的数据源是数据库中的用户表,包含id、name、age和gender字段。

代码设计与实现

1. 安装PHPExcel库

composer require phpoffice/phpexcel

2. 创建导出类

namespace app\util;

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class ExcelExporter
{
    public static function export($data)
    {
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        // 设置表头
        $sheet->setCellValue('A1', '姓名');
        $sheet->setCellValue('B1', '年龄');
        $sheet->setCellValue('C1', '性别');

        // 填充数据
        $row = 2;
        foreach ($data as $item) {
            $sheet->setCellValue('A'.$row, $item['name']);
            $sheet->setCellValue('B'.$row, $item['age']);
            $sheet->setCellValue('C'.$row, $item['gender']);
            $row++;
        }

        // 保存Excel文件
        $writer = new Xlsx($spreadsheet);
        $writer->save('file.xlsx');
    }
}

3. 在控制器中调用导出方法

namespace app\controller;

use app\util\ExcelExporter;
use think\Controller;

class UserController extends Controller
{
    public function exportExcel()
    {
        // 获取需要导出的数据
        $data = User::select()->toArray();

        // 调用导出方法
        ExcelExporter::export($data);

        return '导出成功!';
    }
}

代码解释

首先,我们引入了PHPExcel库,并创建了一个ExcelExporter类。在export方法中,我们创建了一个Spreadsheet实例,表示一个Excel文件。然后,我们获取当前活动的工作表,并设置了表头。接下来,我们遍历数据数组,填充每一行的数据。最后,我们实例化Xlsx Writer,并保存Excel文件。

在UserController的exportExcel方法中,我们获取需要导出的数据,并调用ExcelExporter的export方法进行导出。最后,我们返回一个导出成功的提示信息。

总结

通过以上代码实现,我们可以在ThinkPHP6.0中轻松导出Excel文件。根据实际需求,我们可以进一步扩展和优化这个功能。例如,添加数据筛选、设置单元格样式等。希望这个案例对你有所帮助!