【问题标题】:Export Excel with merged cell with hyperlink using Maatwebsite / Laravel-Excel使用 Maatwebsite / Laravel-Excel 导出带有超链接的合并单元格的 Excel
【发布时间】:2021-12-10 16:49:26
【问题描述】:

我正在使用 Maatwebsite V3.1 将数据导出为 excel 文件。我正在遍历数据并按照 Export Class 中的 excel 结构对其进行格式化。数据结构是这样的,

public function map($user): array {
    return [
               $user->name , $user->ref_title , $user->ref_link
        ];
}

我想将 ref_titleref_link 合并为 excel 文件 ref_title text 将是 ref_link 的可点击超链接。喜欢,ref_title

我在 Maatwebsite/Laravel-Excel v3.1 中找不到任何关于映射超链接的示例或文档。任何人都可以在不使用视图(刀片文件)的情况下给我任何想法或示例吗?感谢您的帮助。

【问题讨论】:

标签: php excel laravel hyperlink maatwebsite-excel


【解决方案1】:

尝试使用registerEvents()方法,尝试添加这段代码:

public function registerEvents(): array
    {
        return [
            AfterSheet::class => function (AfterSheet $event) {
                /** @var Worksheet $sheet */
                foreach ($event->sheet->getColumnIterator('H') as $row) {
                    foreach ($row->getCellIterator() as $cell) {
                        if ($cell->getValue() != "" && str_contains($cell->getValue(), '://')) {
                            $cell->setHyperlink(new Hyperlink($cell->getValue(), 'Read'));

                            // Upd: Link styling added
                            $event->sheet->getStyle($cell->getCoordinate())->applyFromArray([
                                'font' => [
                                    'color' => ['rgb' => '0000FF'],
                                    'underline' => 'single'
                                ]
                            ]);
                        }
                    }
                }
            },
        ];
    }

别忘了实现WithEvents并使用PhpOffice\PhpSpreadsheet\Cell\Hyperlink

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多