未定义索引:描述 - 上传 Excel 文件

Undefined index: description - Uploading Excel File

有什么方法可以阻止 reader 在任何行数据不同时读取 excel 文件?当我上传 excel 文件时,我得到 Undefined index: description,这意味着在上传的文件中找不到 description

有什么方法可以处理这个错误吗?

if ($request->file('imported-file')) {
  $path = $request->file('imported-file')->getRealPath();

  $data = Excel::load($path, function($reader) {
     $reader->calculate(false);
  })->get();

  if (($request->file('imported-file')->getClientOriginalExtension()) != 'xlsx') {
    return redirect('')->with('error','File Format may not be supported');
  } else {

    if (!empty($data) && $data->count()) {
      foreach ($data->toArray() as $row) {
          if (!empty($row)) {
            $dataArray[] = [
              'name' => $row['name'],
              'description' => $row['description'],
            ];
          } 
      }

      if (!empty($dataArray)) {
         Item::insert($dataArray);

         return redirect('')->with('status','successfully added');  
      }
    }

  }
}

而不是:

'description' => $row['description'],

你可以使用

'description' => array_get($row, 'description'),

我也遇到了同样的问题,这是我的解决方法,希望对大家有所帮助。

注意:这是针对Laravel 6.0,导入器class必须实现ToModel,WithHeadingRow这两个接口,

return new Holiday([
'name'          => Arr::get($row,'name'),
'start_date'    => Arr::get($row,'start_date'),
'end_date'      => Arr::get($row,'end_date'),
]);