Laravel : Cómo Importar el archivo de Excel a la Base de datos

Quiero importar algunos datos a través de archivo de Excel a la Base de datos. Pero si bien la carga de Señalar subido en la Base de datos.

No estoy seguro de lo que está mal aquí, si alguien la encontró, la esperanza que me ayudan a encontrarlo.

Aquí está mi controlador:

 public function importExcel()
    {
        if(Input::hasFile('import_file')){
            $path = Input::file('import_file')->getRealPath();

            $data = Excel::load($path, function($reader){})->get()->toArray();
            if(!empty($data) && $data->count()){
                foreach ($data as $key => $value) {
                    $insert[] = ['title' => $value->title, 'description' => $value->description];
                }
                if(!empty($insert)){
                    DB::table('items')->insert($insert);
                // dd('Insert Record successfully.');
                }
            }
        }
        return back();

        }

Y aquí está la hoja de la vista:

<html lang="en">
<head>
    <title>Import - Export Laravel 5</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" >
</head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#">Import - Export in Excel and CSV Laravel 5</a>
            </div>
        </div>
    </nav>
    <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" >
            <input type="file" name="import_file" />
              {!! Form::token(); !!}
            {!!   csrf_field() ; !!} 
            <button class="btn btn-primary">Import File</button>
        </form>
    </div>
</body>
</html>

Y quería subir un archivo como el de la siguiente Imagen :
Laravel : Cómo Importar el archivo de Excel a la Base de datos

InformationsquelleAutor Hola | 2016-08-06

3 Kommentare

  1. 1

    por favor, utilice :
    uso Maatwebsite\Excel\Fachadas\Excel;

    y asegúrese de que el nombre de excel encabezado de columna es exactamente la misma a la base de datos nombre de campo :

    public function importExcelDemo(Request $request)
    {
    
        $rules = array(
            'import_file' => 'required'
        );
    
        $validator = Validator::make($request->all(), $rules);
        if ($validator->fails())
        {
            return Redirect::to('/home')->withErrors($validator);
        }
        else
        {
            try
            {
                Excel::load('C:/Users/EBIZ43/Downloads/'. $request['import_file'], function ($reader)
                {
                    foreach ($reader->toArray() as $row)
                    {
                        $data = $this->ads_repo->prepareData($row);
                        $result = $this->ads_repo->create($data);
                    }
                });
                \Session::flash('success', 'Data imported successfully.');
                return redirect('/home');
            }
            catch (\Exception $e)
            {
                \Session::flash('error', $e->getMessage());
                return redirect('/home');
            }
        }
    }
  2. 0

    En general, veo que has etiquetado a su pregunta Laravel 5, mientras que usted está usando obsoletos Fachadas.

    Recomiendo las siguientes actualizaciones para el código:

    public function importExcel(Request $request)
        {
            $file = $request->file('import_file')
            if($file){
                $path = $file->getRealPath();
                $data = Excel::load($path, function($reader) {
                })->get();
                if(!empty($data) && $data->count()){
                    foreach ($data as $key => $value) {
                        $insert[] = ['title' => $value->title, 'description' => $value->description];
                    }
                    if(!empty($insert)){
                        DB::table('items')->insert($insert);
                    // dd('Insert Record successfully.');
                    }
                }
            } 
        }

    Yo diría que ya ha instalado la biblioteca de Excel.

    • He cambiado el código, pero nada cambió.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea