Laravel擅长横向阅读

目前使用Laravel-Excel(Maatwebsite)包来上传excel并读取它们。 问题是,如何读取同一个excel文件中的水平和垂直数据?

我的Excel文件看起来像这样 –

在这里输入图像说明

到目前为止,这是我的代码,但它没有读取任何东西

$rows = Excel::load('storage\\app\\public\\upload\\Funiture.xlsx)->get(); @foreach ($rows as $key => $value) <tr> <td>{{ $value->{'Furniture Registration Number'} }}</td> <td>{{ $value->{'Number'} }}</td> <td>{{ $value->{'Chair Name'} }}</td> <td>{{ $value->{'Table Name'} }}</td> <td>{{ $value->{'Carpet Color'} }}</td> </tr> @endforeach 

编辑

 $rows = Excel::load('storage\\app\\public\\upload\\Funiture.xlsx)->get(); <span>Furniture Registration Number : <b>{{ $rows[0][1] }}</b></span> $rows = Excel::load('storage\\app\\public\\upload\\Funiture.xlsx, function($reader){$reader->noHeading(); $reader->skipRows(3); })->get();; @foreach ($rows as $key => $value) <tr> <td>{{ $value->[0] }}</td> <td>{{ $value->[1] }}</td> <td>{{ $value->[2] }}</td> <td>{{ $value->[3] }}</td> </tr> @endforeach 

这是对的吗?

编辑

在这里输入图像描述

这是dd(行)的结果。 如何检索数组的数量? 在这种情况下,它有7个如图所示

正如Laravel-Excel文档所述:

默认情况下,excel文件的第一行将被用作属性。

所以如果你想使用属性,你需要为第一行定义正确的标题。 否则,你可以做一件事,只是egnore标题

尝试这个

  $rows= Excel::load("storage\\app\\public\\upload\\Funiture.xlsx", function($reader) { $reader->noHeading(); $reader->skipRows(3); // skip first three rows as they contain headings })->get(); $rows = $rows->toArray(); 

然后在你的视图中,你可以像这样循环遍历行

 @foreach ($rows as $key => $value) <tr> <td>{{ $value[0] }}</td> <td>{{ $value[1] }}</td> <td>{{ $value[2] }}</td> <td>{{ $value[3] }}</td> </tr> @endforeach 

编辑:

你不需要两次读取文件,只读取文件而不跳过3行,然后在读取index [0][1]处的值之后使用array_slice跳过前3行。

  $rows= Excel::load("storage\\app\\public\\upload\\Funiture.xlsx", function($reader) { $reader->noHeading(); })->get(); $rows = $rows->toArray(); 

然后在你看来

 <span>Furniture Registration Number : <b>{{ $rows[0][1] }}</b></span> @php $rows = array_slice($rows,4); @endphp @foreach ($rows as $key => $value) <tr> <td>{{ $value->[0] }}</td> <td>{{ $value->[1] }}</td> <td>{{ $value->[2] }}</td> <td>{{ $value->[3] }}</td> </tr> @endforeach