【问题标题】:How can I read a csv file properly with TypeScript, that has columns with /n and /r/n contained in quotes (".... /r/n ... /n .... ") [duplicate]如何使用 TypeScript 正确读取 csv 文件,该文件的列 /n 和 /r/n 包含在引号中(“.... /r/n ... /n ....”)[重复]
【发布时间】:2021-09-19 20:11:21
【问题描述】:

我有一个 csv 文件,其中包含带有 /n 字符的列以及 /r/n 列,并且该列包含在引号中,如下所示 - “这是某事/r/n 某事/n 随便”

示例数据(复制粘贴到记事本中并保存为 .csv)

注意 - 请在 This is Description 之后使用转义符并输入 (/r/n),并且只能在我无法将其包含在此编辑器中的内容之后输入。)-

INC2289067,"这是说明 某物 另一件事”,2020-14-07 01:14:00,2020-16-07 09:35:00,CORP - CAD L2,GIS AP PC 支持,4 - 低,已解决(永久),错误,2

我试过这段代码 -

 reader.onload = () => {
      let csvData = reader.result;
      let csvRecordsArray = (<string>csvData).split(/\r\n/);
}

这就是我的 csvRecordsArray 在第二列的“这是描述..”之后因为 /r/n 被拆分的方式 -

0: "INC2289067,\"This is Description"
1: "Something\nAnotherthing\",2020-14-07 01:14:00,2020-16-07 09:35:00,CORP - CAD L2,GIS AP PC Support,4 - Low,Solved (Permanently),FALSE,2"

现在,当出现 /r/n 或 /n 时,如果没有像 NGXCSVParser 这样的第三方库,我如何在不破坏我的列的情况下读取这个 csv 文件。 NGXCSVParser 做得很好,但由于兼容性问题,我无法在我的项目中使用它,因为我们使用的是 Angular 6。请帮助。

【问题讨论】:

  • 你必须寻找平衡的引号,而不是简单的拆分。第三方图书馆已经想出了如何做到这一切。您知道的,不仅限于名称中带有“NG”的那些。有成千上万的人会接受一个字符串并对其进行解析。
  • @HereticMonkey 我怎么会错过它?非常感谢您分享答案。

标签: angular typescript csv


【解决方案1】:

你可以简单地使用正则表达式:

("This is Description\r\nSomething\nAnotherthing").split(/\r?\n/);

console.log(("This is Description\r\nSomething\nAnotherthing").split(/\r?\n/))

【讨论】:

  • 这不适用于 csv 但单独使用时可以正常工作。当使用 let csvRecordsArray = (csvData).split(/\r?\n/); 读取 csv 时,我仍然会换行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
  • 2011-09-18
  • 2020-05-22
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多