如何使用Javascript以CSV格式处理逗号

时间:2017-05-22 11:21:49

标签: javascript jquery csv asp.net-mvc-4 export-to-csv

如果数据包含","我在导出到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+ '"');

请纠正字符串,帮助我逃避","在数据中。

5 个答案:

答案 0 :(得分:4)

在字段内转义分隔符的正确方法是用双引号括起字段:

Id,Description
123,"Monitor, Samsung"

然后,该字段内的引号必须使用另一个引号进行转义:

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

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

答案 1 :(得分:1)

可能的解决方案之一可能是读取文件,然后用“”

替换读取的数据

这样的事情:

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

答案 2 :(得分:0)

我尝试使用以下代码,它对我有用

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

我试图在字符串中转义单引号并且它有效。

答案 3 :(得分:0)

这就是我实现报告的功能的方式。

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

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

例如,它是来自数据源的字符串值:

“ StackOverflow”,“太棒了!由StackOverflow团队工作,为他们喝彩。”

解决方案:

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

说明:因此,如果我们引用逗号分隔的值并尝试导出,则CSV不会将逗号(,)视为字段分隔符,因此在CSV导出中不会根据可用逗号的数量分为多列。内容将出现在同一列中。

参考Wiki链接:Comma-separated_values

希望这会有所帮助。干杯!

答案 4 :(得分:0)

使用双引号括起来的字符串并转义字符串中的双引号:

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