首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制csv写流始终使用双引号(nodejs和electronjs)。

强制csv写流始终使用双引号(nodejs和electronjs)。
EN

Stack Overflow用户
提问于 2019-01-04 20:21:26
回答 1查看 810关注 0票数 1

在nodejs和electronjs项目中,我使用CSV -写流来创建数据并将数据附加到CSV中.

有没有办法强迫它总是在每一行的每个条目周围使用双引号?所以行看起来是这样的:

代码语言:javascript
复制
"2018-12-31","Bob","Jones"

我当前的工作代码(减去双引号)如下:

代码语言:javascript
复制
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();

这将输出如下所示的行,没有双引号:

代码语言:javascript
复制
2018-12-31,Bob,Jones

如果您手动尝试将双引号添加到数据中,那么csv写流实际上会将数据包装成双引号,因此您将得到以下结果:

代码语言:javascript
复制
"""2018-12-31""","""Bob""","""Jones"""
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-04 21:19:47

从代码的角度看,这个特性似乎没有实现。它测试每个特殊字符的值(分隔符、\n\r"),并仅在这些字符位于字符串值的情况下添加引号。所以要么使用另一个工具,要么使用叉并为项目提交一个PR :)。这个项目有一个似乎相关的问题:https://github.com/maxogden/csv-write-stream/issues/30

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54045514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档