0

这是我的 Excel 数据表类型:

在此处输入图像描述

这是我的表架构:

在此处输入图像描述

这是我导入数据的方法:

public function saveActivationInfoExcel(Request $request)
    {

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

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

            if(!empty($data) && $data->count()){

                foreach ($data->toArray() as $key => $value) {
                    if(!empty($value)){
                        foreach ($value as $v) {        
                            $insert[] = [
                                        'mobile_no' =>$v['mobile_no'], 
                                        'model' => $v['model'],
                                        'serial_1' => $v['serial_1'],
                                        'serial_2' => $v['serial_2'],
                                        'activation_date' => $v['activation_date'],
                                        ];
                        }
                    }
                }

                dd($insert);
                if(!empty($insert)){
                    //ProductActivationInfo::insert($insert);
                    return back()->with('success','Insert Record successfully.');
                }

            }

        }

        return back()->with('error','Please Check your file, Something is wrong there.');
    }

现在我的问题是,当我尝试导入数据时,我得到了这个 dd($insert) 错误

Illegal string offset 'mobile_no'

'serial_1' => '3.5194508009307E+14', 
'serial_2' => '3.5194508009307E+14', 
'activation_date' => object(Carbon), null)

看看 serial_1 和 serial_2 显示不同的值而不是实际的 excel 值。激活日期值也为空。

感谢您提出宝贵的建议,以解决有关使用“maatwebsite/excel”laravel 库读取数据的问题。

4

1 回答 1

-1

使用 CSV 文件导入数据并将 serial_1 和 serial_2 列格式更改为分数。并更改activation_date 列的格式。

谢谢

于 2021-05-15T15:15:37.737 回答