You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Laravel Excel Maatwebsite将数据库多表导出到单个工作簿

实现方案(Laravel 8 + Laravel Excel 3.1 多工作表导出)

你现有代码中重复定义collection方法属于语法错误,PHP不支持同类同名方法重载,且单表导出的结构本身无法支撑多工作表需求。Laravel Excel 3.1提供了WithMultipleSheets接口专门处理多工作表导出场景,实现步骤如下:


步骤1:创建单个工作表对应的导出类

每个工作表单独定义独立的Export类,分别绑定对应数据源:

// app/Exports/FinancieroSheetExport.php
namespace App\Exports;

use App\Models\tablasexcel;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithTitle; // 可选:给工作表设置名称

class FinancieroSheetExport implements FromCollection, WithTitle
{
    public function collection()
    {
        return collect(tablasexcel::getFinanciero());
    }

    // 可选:定义工作表名称
    public function title(): string
    {
        return '财务数据';
    }
}
// app/Exports/NegociosSheetExport.php
namespace App\Exports;

use App\Models\tablasexcel;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithTitle;

class NegociosSheetExport implements FromCollection, WithTitle
{
    public function collection()
    {
        return collect(tablasexcel::getNegocios());
    }

    public function title(): string
    {
        return '业务数据';
    }
}

步骤2:创建多工作表总导出类

定义总导出类,实现WithMultipleSheets接口,在sheets方法中返回所有要导出的工作表实例:

// app/Exports/MultiSheetExport.php
namespace App\Exports;

use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class MultiSheetExport implements WithMultipleSheets
{
    // 按顺序返回所有工作表实例
    public function sheets(): array
    {
        return [
            new FinancieroSheetExport(),
            new NegociosSheetExport(),
            // 需要更多工作表继续往数组里加对应实例即可
        ];
    }
}

步骤3:控制器中调用导出

在业务逻辑中直接调用总导出类即可生成包含多个工作表的Excel文件:

// 控制器调用示例
use App\Exports\MultiSheetExport;
use Maatwebsite\Excel\Facades\Excel;

public function export()
{
    return Excel::download(new MultiSheetExport, '全量数据.xlsx');
}

可选拓展

如果需要给每个工作表自定义表头、单元格样式、数据映射,可以给对应工作表的Export类引入WithHeadings、WithStyles等官方提供的Concern即可,逻辑和单表导出完全一致。


内容的提问来源于stack exchange,提问作者BG Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 10:15:01