如何以CSV格式输出逗号

时间:2013-07-15 12:45:34

标签: c# stringbuilder

因此要将一些属性输出到csv,我使用的是stringbuilder,它使用逗号作为逗号的自然分隔符。问题是当我在字符串中添加带逗号的字符串时,它会将它拆分为单独的列。所以对于前

temp.Append("ab,cd,ef")给了我3个单独的列。如何将其作为单个列输出,并且逗号完整。

这是捕获组的结果

match = Regex.Match(amt, "^\"([\\d,]+),(\\d\\d\\d)\"$");

然后我做了

amt = Convert.ToString(match.Groups[1].Value) + Convert.ToString(match.Groups[2].Value);

所以它需要123,123,123,123之类的逗号,并且我想输出完全相同的东西,最后一个逗号被句号替换。但它仍然以

出现
  

123 123 123 123 123

在单独的列中

2 个答案:

答案 0 :(得分:7)

您需要将条目包装在引用

temp.Append("\"ab,cd,ed\"");

重新提出问题后更新

根据您的意见,您希望将123,445,567,890转换为123,445,567.890,并希望CSV输出正常工作:

您仍然需要将结果包装在引号中,以便

amt = string.Format("\"{0}.{1}\"", match.Groups[1].Value, match.Groups[2].Value);

或者你可以只替换最后一个','

amt = new Regex(",(?=\\d{3}\"$)").Replace(x,".");

或没有正则表达式。

char[] y = amt.ToCharArray();
y[amt.LastIndexOf(",")] = '.';
amt = string(y);

答案 1 :(得分:0)

Fields with embedded commas must be delimited with double-quote characters.
example: "Anytown, WW" (if it is one field) had to be delimited in double quotes because it had an embedded comma.

看看here