在nodejs和electronjs项目中,我使用CSV -写流来创建数据并将数据附加到CSV中.
有没有办法强迫它总是在每一行的每个条目周围使用双引号?所以行看起来是这样的:
"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写流实际上会将数据包装成双引号,因此您将得到以下结果:
"""2018-12-31""","""Bob""","""Jones"""发布于 2019-01-04 21:19:47
从代码的角度看,这个特性似乎没有实现。它测试每个特殊字符的值(分隔符、\n、\r和"),并仅在这些字符位于字符串值的情况下添加引号。所以要么使用另一个工具,要么使用叉并为项目提交一个PR :)。这个项目有一个似乎相关的问题:https://github.com/maxogden/csv-write-stream/issues/30
https://stackoverflow.com/questions/54045514
复制相似问题