26

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

我正在将数据表中的数据导出到 CSV 文件。

有时可能存在包含逗号( ,) 的值,因此无法正确导出这些值。

例如

考虑值为"9,11,32"。我必须这样导出。

但是当我做第一列 conatins9然后在下一列11

我想显示9,11,32在 CSV 文件的同一列中。我怎么做?

4

6 回答 6

29

只需将您的数据放在反斜杠中,如下所示:“\”” + 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 可能包含逗号“,”

于 2015-03-27T07:35:55.213 回答
18
  1. 字段embedded commas必须用双引号字符分隔。

    领域:

    1. abc, xyz
    2. pqr

.csv 版本:

"abc, xyz" , pqr
  1. 包含double quote字符的字段必须用双引号括起来,并且嵌入的双引号必须分别由一对连续的双引号表示。

    场地:

    Welcome to "My World"
    

    .csv 版本:

    "Welcome to ""My World"""
    
于 2012-12-31T12:26:50.810 回答
7

如果数据中有逗号,则需要放入 csv,https ://www.rfc-editor.org/rfc/rfc4180说要使用引号:

"123,56","A dog, cat and a frog"
于 2011-11-11T07:23:29.293 回答
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));
            }
        }
于 2018-04-28T06:36:09.623 回答
2

将值放在双引号中。

string ValueToEscape = "a,b";

"\"" + ValueToEscape + "\""

CSV 输出 = a,b

于 2018-02-24T06:53:44.207 回答
2

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

前任。我有两列Code & DescriptionCode01 & Val1,Val2,Val3。要使用给定数据创建 csv,请在记事本中的行下方写入并使用 csv 扩展名保存。

Code,Description
Code01,"Val1,Val2,Val3"
于 2018-04-19T13:38:32.833 回答