【问题标题】:How to write text with line space to a CSV file?如何将带行空间的文本写入 CSV 文件?
【发布时间】:2020-04-18 04:33:46
【问题描述】:

我在带有字符串的对象中获取产品描述。 我想将数据写入 CSV 文件,以便进行一些数据分析。

我需要数据在视觉上看起来很漂亮,以便我可以轻松阅读它。 问题是,到目前为止,我得到的只是一堆难以阅读的紧凑字符串。

如果您从 excel 编辑,您将使用 Alt+Enter,这将在同一行中创建一些空间。 如何使用一些行空间写入文件,而不会在 excel 中创建新行?

我发现:

  1. \n 被复制为测试
  2. \r\n 正在开始一个新行,而不是仅间隔该行

例如:

fs.appendFile(`./data/testCSV.csv`,  encodeURIComponent(element.name +'\r\n'+ element.description + '\r\n'+ element.short_description), function (err) {
 if (err) throw err;
});

将分 3 行给出

这是我希望它看起来如何的示例:

还试图找到一个 NPM 解析器,但它们都创建了新的行。

【问题讨论】:

  • 您是否在文本编辑器中打开了使用 Excel 创建的版本,以查看使用 Alt + Enter 的换行符是如何编码的?
  • 是的,它只是用 " " 敲击它。当我使用在线查看不可打印的Unicode 字符工具时,发现了这个:CR LF 之间。但找不到如何使用此信息。
  • 顺便说一句。没有必要用反引号括起来路径,即`./data/testCSV.csv`,因为它不包含根据模板文字的嵌入表达式。用单引号或双引号将路径括起来。

标签: javascript csv npm


【解决方案1】:

要在 csv 中包含多行字段,您需要用引号将字段括起来:

123,"multi 
line 
text",456

字段内的引号必须用另一个引号转义:

123,"Samsung 
24"" 
monitor",456

不确定 Excel 是否会正确处理此问题。

【讨论】:

  • 是的,但是如何在 JS 字符串中添加这个?我按原样得到字符串,我只能使用脚本与其他字符串拼接和连接。我不能只按 Enter 键。
  • @yoni349 你可以只使用\n\r\n,但我不会把它放在encodeURIComponent() 中。
  • 这只是在 Excel 中结束并开始新行。我需要它在同一个单元格/行中的空间。
  • @yoni349 您可以为上面的多行字段创建以下字符串:'"multi \nline \ntext"''"multi \n\nline \n\ntext"',如果您希望中间有空行。
【解决方案2】:

感谢 Danny_ds。

这个变量版本运行良好:

 `"${x} \n ${y} \n\n ${z}"` 

【讨论】:

  • 空格似乎没有必要,给出你问题中的例子应该是:`"${element.name}\n${element.description}\n\n${element.short_description}"`
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多