2012-11-14 161 views
2
解析

所以我们可以说我有一个字符串进入建立这样在一个字符串忽略逗号之间用逗号

output.WriteLine(string.Format("{0},{1},{2},{3}", 
                var1, 
                var2, 
                var3, 
                var4 
                )); 

现在通常会输入每个var到一个单独的单元格的Excel文档。 但是,我发现如果我的var之一在其中有一个逗号,它会将其视为单元格结尾,然后转到下一个单元格。如何在维持设置的同时忽略var中的逗号?

+0

http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file –

回答

6

我假设这是一个您正在创建的CSV文件。因此,您需要用双引号将其中包含逗号的值包装起来。您可以包裹的一切(这是比较容易,如:

output.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\"", 
                var1, 
                var2, 
                var3, 
                var4 
                )); 

或者你可以写的像一个小的辅助功能:

public string EncodeCell(string value) { 
    return value.Contains(",") ? String.Format("\"{0}\"", value) : value; 
} 

然后执行:

output.WriteLine(string.Format("{0},{1},{2},{3}", 
                EncodeCell(var1), 
                EncodeCell(var2), 
                EncodeCell(var3), 
                EncodeCell(var4) 
                )); 
1

在插入您选择的转义序列之前,请在您的var s中将逗号转义。

+0

如果他想让它在Excel中正常打开,那么他必须使用支持的转义,而不是一个他的选择。总体而言,这是正确的做法。 –

1

取决于如何最简单的事情:

var1.Replace(",", "string to replace comma for") 
var2.Replace(",", "string to replace comma for") 
var3.Replace(",", "string to replace comma for") 
... 

使用list/array和String.Join也会使它更容易。

相关问题