首页 > 解决方案 > 如何从 Maatwebsite/Laravel-Excel 包中的特定表号读取数据?

问题描述

我正在研究在 Laravel 框架中导入 excel 数据并使用Maatwebsite/Laravel-Excel包。

现在我已经按照这些步骤操作,但在阅读包文档后没有任何想法,所以我需要帮助从第二张(第二张)表中读取数据,因为我的 excel 文件中有多个表。

计费数据导入

<?php

namespace App\Imports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;

class BillingDataImport implements ToCollection
{
    /**
    * @param Collection $collection
    */
    public function collection(Collection $collection)
    {
        return $collection;
    }
}

计费控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Imports\BillingDataImport;
use App\Http\Controllers\Controller;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Input;

class BillingController extends Controller
{
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $import = new BillingDataImport();
        $rawData = Excel::toArray($import, $request->file('company_1'));
        var_dump($rawData);
    }
}

当我转储代码时,我从第一张(第一张)表中获取数据,但我想阅读第二张(第二张)表,所以请你指导我,因为我不太擅长 Laravel 和这个包。

标签: excellaravelmaatwebsite-excel

解决方案


您需要WithMultipleSheets在导入类中实现接口。它将要求您添加sheets方法。您将像这样包括它们;

public function sheets(): array
{
    return [
        0 => new FirstSheetImport(),
        1 => new SecondSheetImport(),
    ];
}

然后您可以按索引选择它们。更多信息在这里


推荐阅读