如果数据中包含“,”,我在导出到 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+ '"');
请更正字符串并帮助我转义数据中的“,”。
在字段内转义分隔符的正确方法是将字段用双引号引起来:
Id,Description
123,"Monitor, Samsung"
但是字段内的引号必须用另一个引号进行转义:
Id,Description
123,"Monitor 24"", Samsung"
当然,可以使用不同的分隔符,例如
;
,但是您仍然需要检查这些分隔符是否出现在数据中。
我尝试使用下面的代码,它对我有用
item.OrgDescriptionString.replace(/\"/g, "\"\"");
我尝试转义字符串中的单引号,它成功了。
这就是我实现所报告功能的方式。
简而言之: 要求是获取 CSV 导出中的逗号分隔字符串。
假设我们有一个逗号分隔的字符串,需要按原样导出到 CSV 中。
例如 来自数据源的字符串值:
'StackOverflow','太棒了! StackOverflow 团队的工作,为他们干杯。'
解决方案:
['stackoverflow', 'Awesome! work by stackoverflow team, cheers to them.'].map(string => string === null ? '' : `\"${string}\"`);
解释: 因此,如果我们引用逗号分隔值并尝试导出,则 CSV 不会将逗号 (,) 视为字段分隔符,因此在 CSV 导出中,它不会拆分为多个列可用逗号的数量。并且内容会出现在同一列中。
参考维基链接:逗号分隔值
希望这有帮助。干杯!!
可能的解决方案之一是读取文件,然后用“”替换读取的数据
类似这样的:
readData = readData.replace(/,/g, "");
使用双引号括住字符串并在字符串中转义双引号:
csvData.push( "\\"" + strData.replace( /\\"/g , "\\"\\"" ) + "\\"" )
我也有类似的情况,这是需要在csv文件中打印的字符串:
'“P1”,“分级读物”:“三人组”,熊队 2023 年 6 月 15 日'
然后我通过使用模板文字(模板字符串)解决了它:
const exampleString = '"P1", "Graded Reader": "The Three", Bears';
const time = '15 Jun 2023';
const finalString = `"${exampleString?.replace(/"/g, '""')}" ${time}`;
很简单,假设一个地址变量包含逗号,,那么你应该用双引号将它括起来。
data.push('"'+$('.address_1').val()+'"');
或
data.push('"'+address+'"');
就我而言,它工作正常!