我正在尝试将我的excel导入我的数据库,但问题是该错误说“Undefined index:title”指的是控制器中的标题。 所以这是我的控制器代码
public function importExcel()
{
if(Input::hasFile('import_file')){
$path = Input::file('import_file')->getRealPath();
$data = Excel::load($path, function($reader){
})->get();
if(!empty($insert)){
foreach ($data as $key => $value) {
$insert[] = ['title' => $value->title, 'description' => $value->description];
}
if(!empty($insert)){
DB::table('items')->insert($insert);
print_r('Insert Record succesfully');
}
}
}
return back();
}
这是我的观点:
@extends('layouts.app')
@section('content')
<div class="container">
<a href="{{ URL::to('downloadExcel/xls') }}"><button class="btn btn-success">Download Excel xls</button></a>
<a href="{{ URL::to('downloadExcel/xlsx') }}"><button class="btn btn-success">Download Excel xlsx</button></a>
<a href="{{ URL::to('downloadExcel/csv') }}"><button class="btn btn-success">Download CSV</button></a>
<form style="border: 4px solid #a1a1a1;margin-top: 15px;padding: 10px;" action="{{ URL::to('importExcel') }}" class="form-horizontal" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="file" name="import_file" />
<button class="btn btn-primary">Import File</button>
</form>
</div>
@endsection
以下是我要上传到我的数据库的excel图片。这是我要上传的xlsx。 release notes
但错误就像这样See picture for reference
答案 0 :(得分:0)
您可以通过调用toArray
的{{1}}方法直接插入工作表数据。
Maatwebsite\Excel\Readers\LaravelExcelReader
但是,根据您的实施情况,应该注意的是,当为阅读器指定回调时,$loadedFile = Excel::load($path);
$inserts = $loadedFile->toArray();
if (!empty($insert)) {
DB::table('items')->insert($insert);
print_r('Inserted Record successfully');
}
或$reader->all()
会返回$reader->get()
或Maatwebsite\Excel\Collections\RowCollection
,具体取决于文件的页数。
对于只有一张纸的样本,您可以正确地期望Maatwebsite\Excel\Collections\SheetCollection
。因此你有
Maatwebsite\Excel\Collections\RowCollection