¿Qué es un archivo .CSV?
Los archivos .CSV (valores separados por comas) son archivos de texto sin formato que contienen una lista de datos separados por comas (,). Es un formato que se usa mejor para datos tabulares, filas y columnas, exactamente como una hoja de cálculo, solo que la diferencia es que el archivo está en forma de texto sin formato. La idea de un archivo CSV es exportar e importar datos complejos de una aplicación a otra.
Nota: Aquí, estamos usando sample.csv para demostrar nuestro programa y procedimiento. En sample.csv hemos almacenado el nombre, la edad, el correo electrónico y la ciudad del usuario.
Importe CSV a MySQL usando Node.js:
- Cree un proyecto de node.js usando » npm init » y guarde su archivo .csv en el mismo directorio.
- Instale dos paquetes «mysql» y «csvtojson» usando el siguiente comando:
npm i mysql csvtojson
Controlador mysql : este es un controlador node.js para mysql. Está escrito en JavaScript, que no requiere compilación. Lo estamos usando para establecer conexión con nuestra base de datos MYSQL y realizar consultas.
csvtojson: es un analizador csv para convertir csv a json o arrays de columnas. - Ahora solo crea un archivo como index.js y escribe el siguiente código:
// Importing mysql and csvtojson packages // Requiring module const csvtojson = require('csvtojson'); const mysql = require("mysql"); // Database credentials const hostname = "localhost", username = "root", password = "root", databsename = "csvtomysql" // Establish connection to the database let con = mysql.createConnection({ host: hostname, user: username, password: password, database: databsename, }); con.connect((err) => { if (err) return console.error( 'error: ' + err.message); con.query("DROP TABLE sample", (err, drop) => { // Query to create table "sample" var createStatament = "CREATE TABLE sample(Name char(50), " + "Email char(50), Age int, city char(30))" // Creating table "sample" con.query(createStatament, (err, drop) => { if (err) console.log("ERROR: ", err); }); }); }); // CSV file name const fileName = "sample.csv"; csvtojson().fromFile(fileName).then(source => { // Fetching the data from each row // and inserting to the table "sample" for (var i = 0; i < source.length; i++) { var Name = source[i]["Name"], Email = source[i]["Email"], Age = source[i]["Age"], City = source[i]["City"] var insertStatement = `INSERT INTO sample values(?, ?, ?, ?)`; var items = [Name, Email, Age, City]; // Inserting data of current row // into database con.query(insertStatement, items, (err, results, fields) => { if (err) { console.log( "Unable to insert item at row ", i + 1); return console.log(err); } }); } console.log( "All items stored into database successfully"); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Explicación del código:
- En las dos primeras líneas de código Importamos mysql y csvtojson .
const csvtojson = require('csvtojson'); const mysql = require("mysql")
- Línea 10 – 23 : Creamos una conexión a nuestra base de datos.
hostname = "localhost", username = "root", // Username of Mysql local server password = "root", // Password of Mysql local server databsename = "csvtomysql" // Database we are connecting to
- Línea 23 – 38: Nos hemos conectado a nuestra base de datos » csvtomysql » y hemos creado una tabla llamada «muestra» con los campos deseados de acuerdo con nuestro archivo muestra.csv.
- Línea 42 – 64 : Obtuvimos sample.csv ubicado en el directorio actual y convertimos todos los datos a JSON.
- En la línea 43, todos los datos de sample.csv se convierten a JSON y se almacenan en la variable «fuente».
- Luego recorremos cada fila y extraemos el valor de Nombre, Correo electrónico, Edad y Ciudad de esa fila.
- En la línea 53, creamos una array de valores en Nombre, Correo electrónico, Edad y Ciudad, es decir, los datos de la columna de la i-ésima fila.
- Luego insertamos esos datos en la tabla usando la consulta «INSERTAR EN valores de muestra (Nombre, Correo electrónico, Edad, Ciudad)»
- En la línea 62 estamos mostrando los datos insertados a la consola.
Entonces, de esta manera podemos importar cualquier dato de un archivo .csv a nuestra base de datos MYSQL.
Publicación traducida automáticamente
Artículo escrito por Alok_Kumar_Singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA