javascript - 强制 csv-write-stream 始终使用双引号(nodejs 和 electronjs)
问题描述
我正在使用 csv-write-stream 在 nodejs 和 electronjs 项目中创建数据并将其附加到 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-write-stream 实际上会将数据包装在双引号中,因此您最终会得到以下结果:
"""2018-12-31""","""Bob""","""Jones"""
解决方案
看代码,好像没有实现这个功能。它测试每个值的特殊字符(分隔符、、、\n
和\r
)"
,并且仅当这些字符在字符串化值中时才添加引号。因此,要么使用其他工具,要么分叉并为项目提交 PR :)。该项目存在一个似乎相关的问题:https ://github.com/maxogden/csv-write-stream/issues/30
推荐阅读
- android - 无法将数据放入 json 文件中
- javascript - 为什么 includes() 和 indexOf() 在搜索 NaN 时的工作方式不同?
- python - Python(熊猫)中的最大返回问号
- python - 有什么原因导致 NaN 而不是生成的 str ?
- jquery - 更改数据表 css 以对自定义 css 进行排序
- json - Angular:带有订阅的 Observable 返回错误 200 OK,因为响应不是 JSON
- python - Mancala AI 完成游戏并在一轮中获胜而不是一回合
- css - CSS:如何在不影响周围文本流的情况下动态调整 img 元素的大小
- reactjs - setState 未在 React 函数组件中应用更改
- python - Cython 不构建 .so 文件