web-dev-qa-db-fra.com

Comment écrire une valeur contenant une virgule dans un fichier CSV en c #?

J'utilise un tableau de données pour stocker des données.

J'exporte les données du tableau de données vers un fichier CSV.

Parfois, il peut y avoir des valeurs contenant des virgules (,) afin que les valeurs ne soient pas exportées correctement.

Par exemple

Considérez que la valeur est "9,11,32". Je dois exporter en tant que tel.

Mais quand je fais la première colonne de conatins 9 puis dans la colonne suivante 11.

Je veux afficher 9,11,32 dans la même colonne du fichier CSV. Comment je fais ça?

19
user1027129

Mettez simplement vos données dans la barre oblique inverse comme ceci: "\" "+ vos données +"\"". Jetez un œil à l'exemple ci-dessous:

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

Dans l'exemple: Vos données2 peuvent contenir des virgules ","

21
Anh Hoang
  1. Les champs avec embedded commas Doivent être délimités par des guillemets doubles.

    champs:

    1. abc, xyz
    2. pqr

version csv:

"abc, xyz" , pqr
  1. Les champs qui contiennent des caractères double quote Doivent être entourés de guillemets doubles et les guillemets intégrés doivent chacun être représentés par une paire de guillemets consécutifs.

    champ:

    Welcome to "My World"
    

    version csv:

    "Welcome to ""My World"""
    
12
BrainCoder

Si vous avez une virgule dans les données, vous devez mettre dans un csv le http://tools.ietf.org/html/rfc418 dit d'utiliser des citations comme:

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

Écrivez la valeur séparée par des virgules entre guillemets doubles sans espace pour créer un fichier CSV avec une seule colonne pour les valeurs séparées par des virgules.

Ex. J'ai deux colonnes Code & Description Avec des valeurs Code01 & Val1, Val2, Val. Pour créer un fichier csv avec des données données, écrivez la ligne ci-dessous dans le bloc-notes et enregistrez-la avec l'extension csv.

Code,Description
Code01,"Val1,Val2,Val3"
1
Ravi Pipaliya

Mettez la valeur entre guillemets.

string ValueToEscape = "a,b";

"\"" + ValueToEscape + "\""

Sortie CSV = a, b

0
Nagaraju Pasapula