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

本文关键字:CSV 文件 何用 包含逗 | 更新日期: 2023-09-27 18:14:03

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

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

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

例如

假设值为"9,11,32"。我必须这样导出。

但是当我做第一列包含9时,下一列包含11

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

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

只需像这样将数据放入反斜杠中:"'" + 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. 包含embedded commas的字段必须用双引号分隔。

    字段:

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

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

    :

    Welcome to "My World"
    
    csv版本:

    "Welcome to ""My World"""
    
  • 如果数据中有逗号需要放在csv中https://www.rfc-editor.org/rfc/rfc4180说使用引号作为:

    "123,56","A dog, cat and a frog"
    
    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));
                }
            }
    

    将Value放入双引号

    string ValueToEscape = "a,b";
    "'"" + ValueToEscape + "'""
    

    CSV输出= a,b

    将逗号分隔的值写入双引号之间,不加空格,以创建逗号分隔值的单列csv。

    交货。我有两列代码 &Description With Values Code01 & Val1、Val2 Val3 。要使用给定的数据创建csv,请在记事本中写在行下面,并以csv扩展名保存。

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