Laravel-Excel两行标题,其中一些标题跨越多个列

clj7thdc  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(122)

是否有可能实现2行标题与Laravel-Excel?如果是这样,是否有可能使它跨越多列的某些标题?
我需要以下表格结构:

-------------------------------------------------------
|          |  Header 2 - Multiple Columns  |          |
-----------------------------------------------------
| Header 1 | Header 2-Sub1 | Header 2-Sub2 | Header 3 |
-------------------------------------------------------

现在在我的导出文件中,我有一个简单的标题方法,它只返回一行标题:

public function headings()
{
    return ['col1', 'col2', ...];
}
h5qlskok

h5qlskok1#

你需要使用2d数组(文档):

public function headings()
{
    return [
        ['', 'Header 2 - Multiple Columns', ''],
        ['Header 1', 'Header 2-Sub1', 'Header 2-Sub2', 'Header 3'],
    ];
}

更新

如果你想调整标题,请按以下步骤操作:

public function registerEvents(): array
    {
        return [
            AfterSheet::class => function(AfterSheet $event) {
                $event->sheet->mergeCells('B1:C1'); // Merge cells for Header 2 - Multiple Columns
            },
        ];
    }
    public function headings(): array
    {
        return [
            [' ', 'Header 2 - Multiple Columns', ' ' , ' '],
            ['Header 1', 'Header 2-Sub1', 'Header 2-Sub2', 'Header 3'],
        ];
    }

这里我们在第一行添加3个空列(' ')。然后我们将B1C1合并。
记住在类中实现Maatwebsite\Excel\Concerns\WithEvents关注点

相关问题