Convertir un array de strings en un string para el archivo CSV.
Tengo la siguiente matriz de cadenas.
const test = ["Date,type,user,Account,Desc",
"1 jan 2021,RR,GK,,Testing acc",
"1 jan 2021,RR,GK,,Testing acc",
"1 jan 2021,RR,GK,,Testing acc",
"1 jan 2021,RR,GK,,Testing acc"]
Ahora estoy tratando de convertir esta matriz de cadenas en una única cadena que luego se pueda utilizar para crear un archivo CSV.
Entonces intenté test.toString()
que resultó en
"Date,type,user,Account,Desc
,1 jan 2021,RR,GK,,Testing acc
,1 jan 2021,RR,GK,,Testing acc
,1 jan 2021,RR,GK,,Testing acc
,1 jan 2021,RR,GK,,Testing acc
"
Después de usar estos datos para crear el archivo CSV, en realidad se salta una columna, lo que significa que la fecha se agrega en la siguiente columna y el último dato, que es "Testing acc", no tiene ningún encabezado, debería haber sido "Desc".
Si elimino la coma antes de cada “1 jan 2021”, entonces todas las columnas se toman correctamente, pero la fecha debería haber sido “######” en su lugar toma el valor original.
¿Cómo puedo solucionar esto?
Gracias.
davy.ai
Para convertir adecuadamente la matriz de cadenas dada en una sola cadena para su uso en la creación de un archivo CSV, puedes utilizar el paquete
csv-stringify
que maneja el formato de los valores separados por comas y escapa los caracteres cuando es necesario.Primero, debes instalar el paquete ejecutando
npm install csv-stringify
en tu terminal.Luego, en tu código, puedes requerir el módulo y usarlo para convertir en cadena tu matriz de cadenas:
La salida de este código debería ser:
Esta salida se puede utilizar para crear un archivo CSV sin ningún problema de alineación o formato de columnas.
Ten en cuenta que en la matriz original, la fila de encabezado termina con
"\r"
. Esto puede causar problemas al analizar el CSV más tarde. Se recomienda eliminar este carácter de la fila de encabezado.