如何在c#中将包含逗号的值写入CSV文件?

时间:2011-11-11 07:10:55

标签: c# export-to-csv

我正在使用数据表来存储数据

数据从数据表导出到CSV 文件。

有时可能值包含逗号(“,”),因此值 **未正确导出


例如,

考虑值为“ 9,11,32 ”。我必须这样出口。

但是现在 第一列9 ,然后下一栏11 就像那样。

想要在CSV 文件的同一列中显示9,11,32作为excel表格打开。

6 个答案:

答案 0 :(得分:18)

只需将数据放入反斜杠中:“\”“+ yourdata +”\“”。看一下下面的例子:

StringWriter csv = new StringWriter();
// Generate header of the CSV file
csv.WriteLine(string.Format("{0},{1}", "Header 1", "Header 2"));
// Generate content of the CSV file
foreach (var item in YourListData)
{
    csv.WriteLine(string.Format("{0},{1}", item.Data1, "\"" + item.Data2 + "\""));
}

return File(new System.Text.UTF8Encoding().GetBytes(csv.ToString()), "application/csv", string.Format("{0}{1}", "YourFileName", ".csv"));

在示例中:您的data2可能包含逗号“,”

答案 1 :(得分:12)

  1. embedded commas字段必须用双引号字符分隔。

    字段:

    1. abc, xyz
    2. pqr
    3. csv版本:

      "abc, xyz" , pqr

    4. 包含double quote个字符的字段必须用双引号括起来,并且嵌入的双引号必须用一对连续的双引号表示。

      字段:

      Welcome to "My World"

      csv版本: "Welcome to ""My World"""

答案 2 :(得分:6)

如果数据中有逗号,则需要输入csv http://tools.ietf.org/html/rfc4180表示使用qotations as => “123,56”,“狗,猫和青蛙”

答案 3 :(得分:2)

StringBuilder sb = new StringBuilder();          
        foreach (DataColumn col in dt.Columns)
        {
            if (col.ColumnName.Contains(","))
            {
                sb.Append(String.Format("\"{0}\",", col.ColumnName));
            }
            else
            {
                sb.Append(String.Format("{0},", col.ColumnName));
            }
        }

答案 4 :(得分:1)

在没有空格的双引号之间写下逗号分隔值,以便为comaa分隔值创建带有单列的csv。

实施例。我有两列代码& 说明 Code01 &的 VAL1,VAL2,VAL3 即可。要在记事本中创建带有给定数据的csv,请使用csv扩展名保存。

Code,Description
Code01,"Val1,Val2,Val3"

答案 5 :(得分:0)

将值放在双引号中。 string ValueToEscape =" a,b&#34 ;;

<强>&#34; \&#34;&#34; + ValueToEscape +&#34; \&#34;&#34;

CSV输出= a,b