在laravel中将Excel导入数据库?

Posted

技术标签:

【中文标题】在laravel中将Excel导入数据库?【英文标题】:Import Excel to Database in laravel? 【发布时间】:2020-02-24 21:25:29 【问题描述】:

我正在尝试导入一个 excel 文件并将信息保存到数据库表中。现在我收到一个错误

此路由不支持 POST 方法。支持的方法:GET、HEAD、PUT、PATCH、DELETE。

我看到的所有教程都没有出现这个错误,我也是这样做的,我不知道问题是什么。我正在使用这个包"maatwebsite/excel": "~2.1.3"

这是我的vue

<el-form :action="'impteachers/import'" method="post" enctype="multipart/form-data">
    <el-input type="file" name="file"/>
    <el-input type="submit" value="upload"/>
</el-form>

这是控制器

public function import(Request $request)

    $request->validate([
        'file' => 'required|mimes:xls,xlsx'
    ]);

    $path = $request->file('file')->getRealPath();
    $data = Excel::load($path)->get();

    if ($data->count()) 
        foreach ($data as $key => $value)
            $arr[] = [
                'NOMBRE' => $value->name,
                'CEDULA' => $value->card,
                'CARNET' => $value->scard,
                'TIPO-USUARIO' => $value->user_type_id,
                'CORREO' => $value->email,
                'PASSWORD' => $value->password,
            ];
        

        if (!empty($arr)) 
            User::insert($arr);
        
    
    return redirect('/imports');

这些是 web.php 中的路由

Route::resource('impteachers', 'ImportTeacherController');
Route::post('impteachers/import', 'ImportTeacherController@import');

我做错了什么?

【问题讨论】:

【参考方案1】:

尝试只像这样提交给'/impteachers'

<el-form :action="'/impteachers'" method="post" enctype="multipart/form-data">
    <el-input type="file" name="file"/>
    <el-input type="submit" value="upload"/>
</el-form>

并将您的路线设置到此

Route::post('/impteachers', 'ImportTeacherController@import');

【讨论】:

这是一个复制/粘贴错误,我确实将它们都作为我的项目中的导入 哦,好吧。好吧,我会更新你的问题,这样其他人就不会试图纠正同样的事情。也许尝试删除/import 并尝试仅提交给/impteachers。我会更新我的答案。 我试过这个,但现在我得到了一个419 Page Expired @Nancy,419 通常与 csrf_token 有关。查看此article 了解更多信息。 我脑子里有&lt;meta name="csrf-token" content=" csrf_token() "&gt;@csrf,如果我在表单中添加与csrf 相关的任何内容,页面不会加载,没有错误但不会加载。跨度>

以上是关于在laravel中将Excel导入数据库?的主要内容,如果未能解决你的问题,请参考以下文章

laravel 怎么把excel数据导入到数据库中

在 Visual Studio 2010 中将 Excel 数据导入 DataGridView

在 SQL Server 2008 中将数据从浮点类型的 Excel 导入 varchar

如何使用 laravel excel 导入向数据库添加自定义增量值

laravel5.4将excel表格中的信息导入到数据库中

Laravel-Excel 导入 Excel 文件----为什么只获取到最后一行数据?