Agradeceríamos tu ayuda para difundir nuestras reseñas con relación a las ciencias de la computación.
Solución:
Tal vez tarde, pero para las personas que tienen el mismo problema que yo Error: no se especificaron encabezados
if (!fs.existsSync(finalPathFile))
writer = csvWriter( headers: ["header1", "header2"]);
else
writer = csvWriter(sendHeaders: false);
writer.pipe(fs.createWriteStream(finalPathFile, flags: 'a'));
writer.write(
header1:"hello",
header2:"world",
);
writer.end();
El concepto significa que cuando accede al archivo por primera vez, configura los encabezados, para que luego pueda ser leído por otro software de back-end como Excel. Después de eso, cuando vuelva a acceder al archivo, no establecerá los encabezados. Pero ten en cuenta, cada vez que escribe en el archivo, debe establecer en qué columna está escribiendo. Luego obtendrá el resultado deseado, que es algo como esto:
header1,header2
John,5th avenue,
Richard,St. Jorge street
Realmente, fs.createWriteStream
función decide cómo abrir 'out.csv'
En su caso, puede abrir este archivo para agregar usando a
bandera:
writer.pipe(fs.createWriteStream('out.csv', flags: 'a'))
Aquí están los documentos para esta función y las banderas.
Estaba teniendo problemas en los que la primera fila de datos que traté de escribir después del encabezado estaba vacía (solo un montón de comas como esta,,,,,).
También recibí el mensaje Error: No hay encabezados cuando intenté configurar sendHeaders false.
Mi solución se basó en la respuesta original de @Firecat. Modifiqué a esto que funciona muy bien para mí.
const fs = require('fs');
var csvWriter = require('csv-write-stream');
var writer = csvWriter(sendHeaders: false); //Instantiate var
var csvFilename = "C:somepathmyfile.csv";
// If CSV file does not exist, create it and add the headers
if (!fs.existsSync(csvFilename))
writer = csvWriter(sendHeaders: false);
writer.pipe(fs.createWriteStream(csvFilename));
writer.write(
header1: 'DATE',
header2: 'LASTNAME',
header3: 'FIRSTNAME'
);
writer.end();
// Append some data to CSV the file
writer = csvWriter(sendHeaders: false);
writer.pipe(fs.createWriteStream(csvFilename, flags: 'a'));
writer.write(
header1: '2018-12-31',
header2: 'Smith',
header3: 'John'
);
writer.end();
// Append more data to CSV the file
writer = csvWriter(sendHeaders: false);
writer.pipe(fs.createWriteStream(csvFilename, flags: 'a'));
writer.write(
header1: '2019-01-01',
header2: 'Jones',
header3: 'Bob'
);
writer.end();
Te mostramos las comentarios y valoraciones de los lectores
Tienes la opción de añadir valor a nuestra información añadiendo tu experiencia en los comentarios.