How to write a value which contain comma to a CSV file in c#?

前端 未结 6 1366
时光取名叫无心
时光取名叫无心 2021-01-01 14:58

I am using a data table for storing data.

I am exporting the data from data table to CSV file.

Sometimes there may be values containing comma(,)

相关标签:
6条回答
  • 2021-01-01 15:21

    Simply put your data inside the backslash like this: "\"" + yourdata + "\"". Take a look on the example below:

    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"));
    

    In the example: Your data2 may contains comma ","

    0 讨论(0)
  • 2021-01-01 15:22
    1. Fields with embedded commas must be delimited with double-quote characters.

      fields:

      1. abc, xyz
      2. pqr

    csv version:

    "abc, xyz" , pqr
    
    1. Fields that contain double quote characters must be surounded by double-quotes, and the embedded double-quotes must each be represented by a pair of consecutive double quotes.

      field:

      Welcome to "My World"
      

      csv version:

      "Welcome to ""My World"""
      
    0 讨论(0)
  • 2021-01-01 15:25

    Write Comma separated value between double quote without space to create csv with single column for comaa separated values.

    Ex. I have two columns Code & Description With Values Code01 & Val1,Val2,Val3. To create csv with given data write below line in notepad and save it with csv extension.

    Code,Description
    Code01,"Val1,Val2,Val3"
    
    0 讨论(0)
  • 2021-01-01 15:25

    Put Value in double quotes.

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

    CSV Output = a,b

    0 讨论(0)
  • 2021-01-01 15:26

    If you have a comma in the data you need to put in a csv the http://tools.ietf.org/html/rfc4180 says to use quotations as:

    "123,56","A dog, cat and a frog"
    
    0 讨论(0)
  • 2021-01-01 15:31
    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));
                }
            }
    
    0 讨论(0)
提交回复
热议问题