2011-08-05 6 views
1

Je suis nouveau à l'exportation vers csv. J'ai une chaîne qui est générée à partir d'un gridview (str = coups.Cells [0] .Text + "-" + coups.Cells [1] .Text). Je voudrais savoir comment exporter ceci dans un fichier csv.Exporter une chaîne à csv

Comment générer des en-têtes dans le fichier csv, puis les faire correspondre.

Je suis nouveau à l'exportation vers csv.

Merci à tous

Répondre

2

Quel est le problème avec ça?

TextWriter x = File.OpenWrite ("my.csv", ....); 

x.WriteLine("Column1,Column2"); // header 
x.WriteLine(coups.Cells[0].Text + "," + coups.Cells[1].Text); 

Le délimiteur de colonne est une virgule. Ceci est suffisant:

Column1,Column2 
data,data2 
data,data2 

Ils ne doivent pas s'aligner visuellement comme ceci:.

Column1, Column2 
data,  data2 
data,  data2 

Edit: Aux États-Unis, Comma signifie , et Virgule signifie ;. Vous voudrez choisir le délimiteur que votre logiciel utilise.

+0

Rien ne va pas avec ça. C'est exactement ce que je voulais :) –

+1

Attention cependant. Comme je l'ai mentionné dans ma réponse, si coups.Cellules [0] .Text ou coups.Cellules [1].Le texte peut contenir une virgule, alors vous devrez les entourer de guillemets. –

+0

Et si une valeur entre guillemets contient une citation '" ', vous devez echapper le' "' comme '" "'. –

0

csv est juste liste de chaînes avec; entre cellules

Chaîne avec; vous devriez avoir entre guillemets

Exemple

 
Language; Country 
RU; Russia 
EN; UK 
"string with ; in ";I like StackOverFlow 

+0

En fait, il s'agit d'une virgule, pas un point-virgule (le C dans le CSV). –

0

CSV est synonyme de * C * OMMA * S * eparated * V * aleurs. Donc, toute méthode de concaténation de chaînes fonctionnera. La seule partie délicate est que si une valeur contient une virgule, puis la totalité de la valeur doit être entourée par des guillemets comme ceci:

« Mouse, Mickey », Disney Land, États-Unis

2

Voici une méthode que j'ai écrite il y a un certain temps que vous pouvez passer une chaîne dans et la formater pour CSV ... juste séparer chaque chaîne par un; et ce sera dans une colonne séparée. Faites une nouvelle ligne (retour dur) pour indiquer une autre ligne. Désolé ceci dans VB.NET

Private Function FormatStringForCsvFile(ByVal strCSV As String) As String 
     Dim addDoubleQuotes As Boolean = False 
     Dim strReturn As String = strCSV 
     If strReturn IsNot Nothing AndAlso strReturn.Length > 0 Then 
      'if the string contains any double quotes then we need to change those double quotes to 2x double quotes 
      If strReturn.Contains("""") Then 
       strReturn = strReturn.Replace("""", """""") 
       addDoubleQuotes = True 
      End If 
      'if the string contains a comma, any spaces before or after, 
      'any 2x double quotes, or a new line then we need to enclose it in double quotes 
      If strReturn.Contains(",") Or Char.IsWhiteSpace(strReturn(0)) _ 
       Or Char.IsWhiteSpace(strReturn(strReturn.Length - 1)) _ 
       Or addDoubleQuotes Or strReturn.Contains(vbCrLf) Then 
       strReturn = """" & strReturn & """" 
      End If 
     End If 

     Return strReturn 

    End Function 

Cette méthode est utilisée pour formater la chaîne que vous voulez séparer avec; deliminator parce que votre chaîne que votre séparant n'est pas toujours conforme aux règles de csv. S'il y a un; ou "ou retour dur dans votre chaîne .. bien vous devez inclure cela entre guillemets .. Cela permettra au programme qui rend le csv que le" font partie de la chaîne et ne signifiant pas un suppresseur

+0

Bon homme. Cela aidera aussi –

0

CSV Signifie Comma Separated Value, ici chaque valeur est Séparée par ,. Il n'y a rien de spécial en tant qu'en-tête. Toutefois, vous pouvez considérer la première ligne comme un en-tête.