2 回答

TA貢獻1828條經(jīng)驗 獲得超3個贊
子標題或<tr>
內(nèi)部<thead>
是有效的 HTML,并且應(yīng)該與 PhpSpreadsheet/Laravel-Excel 一起正常工作。但是,根據(jù)HTML 規(guī)范,多個<tbody>
是無效/合法的,并且Laravel-Excel 不支持嵌套表。
正如我在評論中提到的,我們一直在應(yīng)用程序中使用 Laravel-Excel,它使用非常相似的布局,并且可以在 head 中處理多行。所以真正的問題是多個或嵌套的主體。我建議遵循我們使用過的方法。rowspan
您可以使用適當?shù)腶nd實現(xiàn)相同的布局colspan
(我們正在計算它)。
編輯:
根據(jù)要求,這里有一個HTML示例,其中包含根據(jù)您的布局提供的示例數(shù)據(jù),下面是帶有循環(huán)的刀片視圖。
<table border="1">
? <thead>
? ? <tr>
? ? ? ? <th rowspan="2">Client Name</th>
? ? ? ? <th rowspan="2">Total</th>
? ? ? ? <th colspan="4">{{ __('Items') }}</th>
? ? ? ? <th rowspan="2">Creation Date</th>
? ? </tr>
? ? <tr>
? ? ? ? <th>Title</th>
? ? ? ? <th>Price</th>
? ? ? ? <th>Quantity</th>
? ? ? ? <th>Total</th>
? ? </tr>
? ? </thead>
? ? <tbody>
? ? @foreach($customers as $customer)
? ? ? ? @php
? ? ? ? ? ? $count = count($customer->items);
? ? ? ? ? ? $i = 0;
? ? ? ? @endphp
? ? ? ? @foreach($customer->items as $item)
? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? @if($i == 0)
? ? ? ? ? ? ? ? ? ? <td rowspan="{{ $count }}">{{ $customer->name }}</td>
? ? ? ? ? ? ? ? ? ? <td rowspan="{{ $count }}">{{ $customer->total }}</td>
? ? ? ? ? ? ? ? @endif
? ? ? ? ? ? ? ? <td>{{ $item->title }}</td>
? ? ? ? ? ? ? ? <td>{{ $item->price }}</td>
? ? ? ? ? ? ? ? <td>{{ $item->qty }}</td>
? ? ? ? ? ? ? ? <td>{{ $item->total }}</td>
? ? ? ? ? ??
? ? ? ? ? ? ? ? @if($i == 0)
? ? ? ? ? ? ? ? ? ? <td rowspan="{{ $count }}">{{ $customer->date }}</td>
? ? ? ? ? ? ? ? @endif
? ? ? ? ? ? </tr>
? ? ? ? ? ? @php
? ? ? ? ? ? ? ? $i++;
? ? ? ? ? ? @endphp
? ? ? ? @endforeach
? ? @endforeach
? </tbody>
</table>

TA貢獻1878條經(jīng)驗 獲得超4個贊
您現(xiàn)在遇到的錯誤與您正在使用的庫無關(guān)。
您正在為主表中的每個關(guān)系項使用一個 HTML 表,其中包含您需要顯示的所有內(nèi)容。因此它不能很好地工作。并非所有 Web 瀏覽器都支持格式錯誤的 HTML 文檔,而且不同版本的支持差異很大。
編寫正確的 HTML:使用 DIVs 元素構(gòu)建智能可視化網(wǎng)頁,并僅顯示 TABLEs 元素內(nèi)的關(guān)系,因此它們不會像我們在這里看到的那樣被部分隱藏或錯誤顯示。
因此,為了構(gòu)建 HTML,如果您使用 Bootstrap 作為示例,您可以使用一行作為標題,并為每個項目使用一行。對于每個關(guān)系項,您可以將它們放入表格中,它們將正確顯示。
- 2 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報