使用 Laravel 将 excel 文件导入数据库

问题描述

为什么在使用 Laravel 将 excel 文件导入数据库时​​会得到未定义的偏移量。

UserImport.PHP

public function model(array $row)
{
    var_dump($row);
    
    return new User([
        'name' =>$row[0],'email'=>$row[1],'password' => Hash::make('password'),]);
}

UserImportController

public function store(Request $request){

    $file = $request->file('file');
    Excel::import(new UsersImport,$file);
    return back()->withStatus('Successfully');
}

上传excel文件时,这样显示enter image description here

我使用 var_dump() 来查看数组。我在excel文件中输入了4行。而是显示5个数组数据。为什么??? (显示在输入的图像中。 )

解决方法

我相信这是因为文件末尾的新行。

您应该检查它是否只包含一个新行并跳过导入。

,

设置 UserImport.php

的条件
if($row[0] !=""){ 
    return new User([ 
        'name' =>$row[0],'email'=>$row[1],'password' => Hash::make('password'),]); 
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...