如何使用JavaScript处理CSV中的逗号

a0x5cqrl  于 2023-09-28  发布在  Java
关注(0)|答案(6)|浏览(130)

我有一些数据,这是面临的问题,而出口到csv,如果数据包含“,”在它。
下面是代码:

CSVData.push('"' + item.OrgId+ '","' + item.Name + '","' + item.OrgDescriptionString + '","' + itam.OrgDetailsString + '","' + item.Active+ '"');

如果orgDetaisl字符串包含“,”,则数据被重叠并移动到下一列。
如何转义“,”。我试过使用双引号“",但不知道如何才能实现。

CSVData.push('"' + item.OrgId+ '","' + item.Name + '","\""' + item.OrgDescriptionString + '"\"","\""' + item.OrgDetailsString + ' \"","' + item.Active+ '"');

请更正字符串并帮助我转义数据中的“,”。

r3i60tvu

r3i60tvu1#

转义字段中分隔符的正确方法是将字段括在双引号中:

Id,Description
123,"Monitor, Samsung"

但是字段中的引号必须用另一个引号转义:

Id,Description
123,"Monitor 24"", Samsung"

当然,也可以使用不同的分隔符,如;,但您仍然需要检查这些分隔符是否出现在数据中。

bkhjykvo

bkhjykvo2#

我试着用下面的代码,它为我工作

item.OrgDescriptionString.replace(/\"/g, "\"\"");

我尝试转义字符串中的单引号,它工作。

wbgh16ku

wbgh16ku3#

这就是我如何实现报告的功能。

**简而言之:**要求是获取CSV导出中的逗号分隔字符串。

假设我们有一个逗号分隔的字符串,需要按原样导出到CSV中。

例如来自数据源的String值为:

'StackOverflow','真棒!StackOverflow团队的工作,为他们欢呼。

解决方案:

['stackoverflow', 'Awesome! work by stackoverflow team, cheers to them.'].map(string => string === null ? '' : `\"${string}\"`);

**解释:**因此,如果我们引用逗号分隔的值并尝试导出,CSV将不会将逗号(,)视为字段分隔符,因此在CSV导出中,它不会根据可用逗号的数量分成多个列。并且内容将显示在同一列中。

参考wiki链接:Comma-separated_values
希望这对你有帮助。干杯!干杯!

w80xi6nr

w80xi6nr4#

一种可能的解决方案是读取文件,然后用“”替换读取的数据
大概是这样的:

readData = readData.replace(/,/g, "");
jmp7cifd

jmp7cifd5#

在字符串中使用双引号和转义双引号:

csvData.push( "\\"" + strData.replace( /\\"/g , "\\"\\"" ) + "\\"" )
ohtdti5x

ohtdti5x6#

我也遇到过类似的情况,下面是需要在csv文件中打印的字符串:
“P1”,“分级阅读器”:《The Three》,Bears 2023年6月15日
然后我使用模板文字(模板字符串)解决了它:

const exampleString = '"P1", "Graded Reader": "The Three", Bears';
const time = '15 Jun 2023';

const finalString = `"${exampleString?.replace(/"/g, '""')}" ${time}`;

相关问题