0

Hola estoy tratando de importar datos de un archivo de excel a mi base de datos en mysql instale laravel excel en mi proyecto pero es la version 3.1 y tengo entendido que 'excel::load' no funciona en dicha version. Como puedo cambiar a la version 2.1 o que funcion la remplazo?

Gracias.

Adjunto mi funcion de importar

function import(Request $request)
{
 $this->validate($request, [
  'select_file'  => 'required|mimes:xls,xlsx'
 ]);

 $path = $request->file('select_file')->getRealPath();

 $data = Excel::load($path)->get();

 if($data->count() > 0)
 {
  foreach($data->toArray() as $key => $value)
  {
   foreach($value as $row)
   {
    $insert_data[] = array(
     'ins_codigo'   => $row['codigo'],
     'ins_observacionInicial'   => $row['observacion_inicial'],
     'ins_claseOexactitud'    => $row['ins_claseOexactitud']

    );
   }
  }

  if(!empty($insert_data))
  {
   DB::table('tbl_instrumentos')->insert($insert_data);
  }
 }
 return back()->with('success', 'Excel Data Imported successfully.');
}

1 Answers1

1

Como puedo cambiar a la version 2.1

Como tu mismo mencionas, la version 3.1 de maatwebsite/excel no tiene el método load(), y para usarlo debes bajarlo a la versión 2.

Elimina primero el archivo config/excel.php.

Luego cambia la versión de maatwebsite/excel en el archivo composer.json de "maatwebsite/excel": "^3.1" a "maatwebsite/excel": "~2.1.0"

Finalmente, corre el comando

composer update

o que funcion la remplazo?

Pero si lees la documentación también encontrarás:

Excel::load() is removed and replaced by Excel::import($yourImport)

así que la función de reeplazo sería import()

porloscerros Ψ
  • 5,953
  • 2
  • 9
  • 21
  • Disculpa el archivo config/excel.php es el que esta en /vendor/maatwebsite/excel/config/excel.php a ese te refieres? – Rafael Monroy Rodriguez Feb 24 '20 at 17:12
  • No no, en la carpeta config de tu proyecto. Solo estará presente si corriste el comando `php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"`, si no lo hiciste, puedes ignorar la parte de borrar el archivo – porloscerros Ψ Feb 24 '20 at 17:17
  • Hice lo que me dijiste pero igualmente me sale el error , ademas de eso cuando puse 'composer update' salío esto --Your requirements could not be resolved to an installable set of packages Problem 1 - Conclusion: remove laravel/framework v6.16.0 así hasta v6.2 – Rafael Monroy Rodriguez Feb 24 '20 at 17:52
  • Tienes que leer cuáles son lo "requisitos no se pudieron resolver con un conjunto de paquetes instalables.". Posiblemente no puedas usar la versión 2.1 en las últimas versiones de Laravel (no sé cual estás usando). Por lo que deberías ir por la segunda opción, que es usar `import()` con la versión 3.1, en vez de `load()`. Dejé un link a la documentación de la librería en la respuesta, te sugiero leerla para poder usarla como está explicado ahí. – porloscerros Ψ Feb 24 '20 at 17:58