2011-12-04 5 views
0

J'écris un programme et je suis bloqué. Je voulais être capable d'éditer une grille de données avec un programme ouvert et cliquer sur un bouton pour enregistrer et mettre à jour le fichier CSV qui contient le DataGrid.Exporter GridView Vers un fichier CSV en utilisant streamwritter

Je sais que cela est possible, mais besoin d'aide comment obtenir ce travail avec mon code:

 private void GridView(List<string[]> parsedData) 
     { 
      dataGridView1.Rows.Clear(); 
      dataGridView1.ColumnCount = 2; 
      for (int i = 0; i < 2; i++) 
      { 
       var sb = new StringBuilder(parsedData[0][i]); 
       sb.Replace('_', ' '); 
       sb.Replace("\"", ""); 
       dataGridView1.Columns[i].Name = sb.ToString(); 
      } 

      foreach (string[] row in parsedData) 
      { 
       dataGridView1.Rows.Add(row); 
      } 

      dataGridView1.Rows.Remove(dataGridView1.Rows[0]); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

      List<string[]> parsedData = read(@"c:\users\dick\documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\file.csv", ','); 

      GridView(parsedData); 

     } 



     private void button3_Click(object sender, EventArgs e) 
     { 
      List<string[]> parsedData = read(@"c:\users\dick\documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\Alteredfile.csv", ';'); 

      GridView(parsedData); 

     } 



     private void button2_Click(object sender, EventArgs e) 
     { 
      StringBuilder sb = new StringBuilder(); 
      for (int k = 0; k < dataGridView1.Columns.Count; k++) 
      { 
       sb.Append(dataGridView1.Columns[k].HeaderText + ','); 
      } 
      sb.Append("\r\n"); 
      for (int i = 0; i < dataGridView1.Rows.Count; i++) 
      { 
       for (int K = 0; K < dataGridView1.Columns.Count; K++) 
       { 
        sb.Append(dataGridView1.Rows[i].Cells[K].ErrorText + ','); 
       } 
       sb.Append("\r\n"); 
      } 

      using (var sw = new StreamWriter(@"c:\users\dick\documents\visual studio 2010\Projects\WindowsFormsApplication2\WindowsFormsApplication2\Alteredfile.csv")) 
      { 
       sw.WriteLine(sb.ToString()); 
    } 

    }} 
} 

Répondre

0

Je ne peux pas l'essayer en ce moment, mais cette ligne est faux:

sb.Append(dataGridView1.Columns[k].HeaderText + ','); 

Vous devriez faire quelque chose comme ça pour obtenir les chaînes de la grille:

(string)dataGridView1.Rows[x].Columns[k].value 

ou

(string[])dataGridView1.Rows[x].value 
Questions connexes