首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel,水平阅读

Laravel,水平阅读
EN

Stack Overflow用户
提问于 2017-08-02 03:46:19
回答 1查看 2.6K关注 0票数 2

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

我的excel文件是这样的-

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

代码语言:javascript
运行
复制
$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

编辑

代码语言:javascript
运行
复制
$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,如图所示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 06:45:06

正如Laravel文档所述:

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

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

尝尝这个

代码语言:javascript
运行
复制
   $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();

然后,在您的视图中,您可以循环如下所示的行

代码语言:javascript
运行
复制
@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行,然后使用切片在索引[0][1]读取值后跳过前3行。

代码语言:javascript
运行
复制
     $rows= Excel::load("storage\\app\\public\\upload\\Funiture.xlsx", function($reader) {
           $reader->noHeading();
     })->get();
   $rows = $rows->toArray();

在你看来

代码语言:javascript
运行
复制
<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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45451099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档