如何根据maatwebsite 3版laravel excel中的内容进行自动高度排行? [英] How do I make automatic height row based on content in the maatwebsite version 3 laravel excel?

查看:119
本文介绍了如何根据maatwebsite 3版laravel excel中的内容进行自动高度排行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有搜索参考,参考说要尝试这样:

I had search reference and the reference say to try like this :

<?php   
...
class ReportExport implements ShouldAutoSize, FromView, WithColumnFormatting, WithEvents
{
    ...
    public function registerEvents(): array
    {
        return [
            AfterSheet::class    => function(AfterSheet $event) {
                ...
                $event->sheet->getDelegate()->getRowDimension(37)->setRowHeight(-1);
                $event->sheet->getDelegate()->getStyle('R37:Z37')->getAlignment()->setWrapText(true);
            },
        ];
    }
}

我这样尝试,但是结果是这样的:

I try like that, but the result like this :

应该基于内容/文本自动添加行的高度.但是它没有添加

Should the height of row automatic added based content/text. But it does not added

我该如何解决这个问题?

How can I solve this problem?

更新:

似乎此脚本:$event->sheet->getDelegate()->getRowDimension(37)->setRowHeight(-1);在表中不起作用

Seems this script : $event->sheet->getDelegate()->getRowDimension(37)->setRowHeight(-1); is not working in the table

我在表外尝试了脚本,它起作用了.因此,该脚本只能在表格标记之外工作

I tried the script outside the table, it worked. So the script only work outside table tag

我的桌子是这样的:

<table>
    ....
    @php ($group = 'A')
    @php ($number = 0)
    @foreach($values as $item)
    @if($number==0 || $group!=$item['group'])
    <tr>
        <td colspan="9">Kelompok {{$item['group']}}</td>
        <td colspan="2"></td>
        <td colspan="3"></td>
        <td colspan="3"></td>
        <td colspan="9"></td>
        <td colspan="2"></td>
        <td colspan="3"></td>
        <td colspan="3"></td>
        <td colspan="9"></td>
    </tr>
    @php ($number = 0)
    @endif
    <tr>
        <td style="text-align:center;" colspan="2">{{++$number}}</td>
        <td colspan="7">{{$item['lesson_name']}}</td>
        <td style="text-align:center;" colspan="2">{{$item['kb_pengetahuan']}}</td>
        <td style="text-align:center;" colspan="3">{{$item['nilai_pengetahuan']}}</td>
        <td style="text-align:center;" colspan="3">{{$item['predikat_pengetahuan']}}</td>
        <td colspan="9">{{$item['deskripsi_pengetahuan']}}</td>
        <td style="text-align:center;" colspan="2">{{$item['kb_keterampilan']}}</td>
        <td style="text-align:center;" colspan="3">{{$item['nilai_keterampilan']}}</td>
        <td style="text-align:center;" colspan="3">{{$item['predikat_keterampilan']}}</td>
        <td colspan="9">{{$item['deskripsi_keterampilan']}}</td>
    </tr>
    @php ($group = $item['group'])
    @endforeach
</table>

请帮助我.我需要对PhpSpreadsheet功能的支持

Please help me. I need support for PhpSpreadsheet functionality

推荐答案

public function registerEvents(): array
    {
        return [
            AfterSheet::class    => function(AfterSheet $event) {
                ...
                $event->sheet->getDelegate()
                    ->getStyle('R37:Z37')
                    ->applyFromArray([ 'alignment' => ['wrapText' => true]])
            },
        ];
    }

这篇关于如何根据maatwebsite 3版laravel excel中的内容进行自动高度排行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆