微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决 Laravel Excel 表格问题?

如何解决如何解决 Laravel Excel 表格问题?

在哪里可以找到这个 onlySheets 方法

我想从包含名为“客户”的工作表的 Excel 文件中导入数据。

我创建了一个 ClientsImport.PHP 文件

<?PHP

namespace App\Imports;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;

class ClientsImport implements WithMultipleSheets
{
    // MULTIPLE SHEETS
    public function sheets(): array
    {
        return [
            'clients' => new ClientsSheetImport(),];
    }
    // END MULTIPLE SHEETS
}

然后创建 ClientSheetImport.PHP 文件以从给定的 Excel 文件获取行并验证数据:

<?PHP

namespace App\Imports;

use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithValidation;
// use Maatwebsite\Excel\Concerns\WithheadingRow;
use Maatwebsite\Excel\Concerns\WithMappedCells;
use App\Client;

class ClientsSheetImport implements ToModel,WithValidation,WithMappedCells
{
  /**
   * @param array $row
   *
   * @return Client|null
   */
  public function model(array $row)
  {
      return new Client([
          'nrc_entrp' => $row['nrc_entrp'],'raisoci' => $row['raisoci'],]);
  }

  public function rules(): array {
      return [
        'nrc_entrp'=> 'required|unique:clients|max:20','raisoci'=> 'required|unique:clients|max:100',];
  }
  public function mapping(): array
  {
      return [
        'nrc_entrp' => 'B1','raisoci' => 'B2',];
  } // mapping

}

ImportClientController.PHP 中,我想使用此给定代码从 Excel 文件(“客户”工作表)导入一张工作表:

  $import_client = new ClientsImport();
  $import_client->onlySheets('clients');
  Excel::import($import_client,$file_url);

但是我遇到了这个错误

Call to undefined method App\Imports\ClientsImport::onlySheets()

在哪里可以找到这个 onlySheets 方法

谢谢

解决方法

我这样做了并且有效。 添加这个:

class UserImport implement ...{
use WithConditionalSheets;
 public function conditionalSheets(): array
    {
        return [
            'Sheet1' => new ReadImport(),];
    }
...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。