Inicio » Blog » Laravel

1 abril, 2021

Exportar un lista TXT a Mysql

Para exportar una lista de miles nombres e insertar a una base de datos usaremos Laravel donde programamos un script que apertura el documento txt y filtre

Ver video en

Suscríbete a nuestro canal en Youtube

Suscríbirse

en ocaciones necesitamos exportar una lista de nombres a SQL y pues da el caso que te las entregan en .doc u otros formatos, para este tutorial exportaremos un documento txt a mysql usando el framework Laravel de una forma sencilla. Vamos entonces al asunto principal de este ejemplo:

Los Recursos a exportar a MYSQL

Basicamente recibí una lista de nombres en .doc los cuales los guardé como txt, luego ubicamos los archivos en la carpeta public/recursos/nombre.txt, esto dentro del proyecto Laravel 8.  Ud adjunta la lista de nombres a exportar.

Programando con Laravel

Creamos un controlador exclusivamente para realizar la conversión con artisan :

php artisan make:controller ExportarController

Luego implementamos el método que hará la magía de exportar txt a sql con los filtros necesarios para obtener una lista limpia e insertarlos a SQL.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\nombre;
class ExportarController extends Controller
{
    public function index(){
        $fp = fopen(public_path("recursos/nombres de mujeres.txt"), "r");
        $array=['-','´','á','é','í','ú',"'",'ï',' ','ADVERTISEMENT'];
        while (!feof($fp)){
            $linea = fgets($fp);
            $c=0;
            foreach($array as $r){   
                if(trim($linea)!="ADVERTISEMENT")         
                    if(strripos($linea,$r)):
                        echo "no guardar...".$linea."<br>";
                    else:
                        $c++;
                        if($c==count($array)):
                            echo "si guardar...".$linea."<br>";
                            // TABLA
                            $existe = nombre::whereName($linea)->first();
                            if(empty($existe)){
                                $n = new nombre();
                                $n->name = $linea;
                                $n->save();
                                $c=0;
                            }
                        endif;
                    endif;
            }            
        }
        fclose($fp);
    }
}

 

Ahora creamos el modelo y migración con artisan

php artisan make:model Nombre -m

Implementamos el modelo y la migración 

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class nombre extends Model
{
    use HasFactory;
    protected $fillable = [
        'name'
      
    ];

}

 

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateNombresTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('nombres', function (Blueprint $table) {
            $table->id();
            $table->text("name",20)->unique();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('nombres');
    }
}

 

finalmente realizamos una migración para que se refleje en nuestra base de datos la table nombres vacia

Ahora procedemos a levantar el proyecto Laravel con artisan

php artisan serve

Y abrimos la ruta en el navegador para que empiece el proceso de exportación de datos a MYSQL

http://localhost:8000/convertirtxtsql

 

 


Leido 2759 veces

Compartir link del tutorial con tus amigos


Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023