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

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 3332 veces | 1 usuarios

Código fuente no disponible.

Compartir link del tutorial con tus amigos


Curso de Laravel básico

USD 17.00

Descarga del código fuente

Curso de Laravel básico
Laravel Página Web Administrable

USD 17.00

Descarga del código fuente

Laravel Página Web Administrable

Más tutoriales de Laravel

Codea Applications

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

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024