Заставить csv-write-stream всегда использовать двойные кавычки (nodejs и electronicjs) - PullRequest
0 голосов
/ 04 января 2019

Я использую csv-write-stream для создания и добавления данных в CSV в проектах nodejs и electronicjs.

Есть ли способ заставить его всегда использовать двойные кавычки вокруг каждой записи каждой строки? Итак, строка будет выглядеть примерно так:

"2018-12-31","Bob","Jones"

Мой текущий рабочий код (без двойных кавычек) такой:

const fs = require('fs');
var csvWriter = require('csv-write-stream');
var writer = csvWriter({sendHeaders: false}); //Instantiate var
var csvFilename = "C:\some\path\myfile.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();

Будет выведена строка, которая выглядит следующим образом, без двойных кавычек:

2018-12-31,Bob,Jones

Если вы вручную попытаетесь добавить двойные кавычки к данным, тогда csv-write-stream фактически обернет данные в двойные кавычки, так что вы получите следующее:

"""2018-12-31""","""Bob""","""Jones"""

1 Ответ

0 голосов
/ 05 января 2019

Глядя на код, похоже, что эта функция не реализована. Он проверяет каждое значение на наличие специальных символов (разделитель, \n, \r и ") и добавляет кавычки, только если эти символы находятся в строковом значении. Так что либо используйте другой инструмент, либо разветвитесь и отправьте пиар для проекта :). Существует проблема, связанная с проектом: https://github.com/maxogden/csv-write-stream/issues/30

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...