2012-11-14 209 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也會使它更容易。

相關問題