JavaScript:
Trabajando con CSV
Cómo:
JavaScript no tiene funcionalidad incorporada para analizar o convertir a cadena los datos CSV como lo hace con JSON. Sin embargo, puedes gestionar fácilmente los datos CSV usando JavaScript puro para tareas más simples o aprovechando potentes bibliotecas como PapaParse
para escenarios más complejos.
Análisis Básico con JavaScript Puro
Para analizar una cadena CSV simple en un arreglo de objetos:
const csv = `nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles`;
function parseCSV(csv) {
const lines = csv.split("\n");
const result = [];
const headers = lines[0].split(",");
for (let i = 1; i < lines.length; i++) {
const obj = {};
const currentline = lines[i].split(",");
for (let j = 0; j < headers.length; j++) {
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result;
}
console.log(parseCSV(csv));
Salida:
[
{ nombre: 'John', edad: '23', ciudad: 'Nueva York' },
{ nombre: 'Jane', edad: '28', ciudad: 'Los Ángeles' }
]
Generación Básica a CSV con JavaScript Puro
Para convertir un arreglo de objetos en una cadena CSV:
const data = [
{ nombre: 'John', edad: 23, ciudad: 'Nueva York' },
{ nombre: 'Jane', edad: 28, ciudad: 'Los Ángeles' }
];
function arrayToCSV(arr) {
const csv = arr.map(row =>
Object.values(row).join(',')
).join('\n');
return csv;
}
console.log(arrayToCSV(data));
Salida:
John,23,Nueva York
Jane,28,Los Ángeles
Uso de PapaParse para Tareas CSV Complejas
Para escenarios más complejos, PapaParse
es una biblioteca robusta adecuada para analizar y convertir archivos CSV con opciones para fluxes, trabajadores y manejo de archivos grandes.
Análisis de archivo o cadena CSV con PapaParse:
// Después de agregar PapaParse a tu proyecto
const Papa = require('papaparse');
const csv = `nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles`;
Papa.parse(csv, {
complete: function(results) {
console.log("Analizado:", results.data);
}
});
Genera:
Analizado: [
["nombre", "edad", "ciudad"],
["John", "23", "Nueva York"],
["Jane", "28", "Los Ángeles"]
]
Convertir un arreglo a una cadena CSV con PapaParse:
const data = [
{ nombre: 'John', edad: 23, ciudad: 'Nueva York' },
{ nombre: 'Jane', edad: 28, ciudad: 'Los Ángeles' }
];
console.log(Papa.unparse(data));
Genera:
nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles
Estos ejemplos ilustran el manejo básico y avanzado de CSV en JavaScript, facilitando el intercambio de datos en aplicaciones web y más allá.