2011-12-04 11 views
0

私はプログラムを作成しています。開いているプログラムでデータグリッドを編集し、ボタンをクリックして、データグリッドがいっぱいになっているCSVファイルを保存および更新できるようにしたかったのです。GridViewをストリームライタを使用してCSVファイルにエクスポート

私はこれが可能である知っているが、これは私のコードで作業を取得する方法とが必要です:

 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()); 
    } 

    }} 
} 

答えて

0

私は今それを試すことはできませんが、この行が間違っている:

sb.Append(dataGridView1.Columns[k].HeaderText + ','); 
あなたは、グリッドの文字列を取得するには、このような何かを行う必要があり

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

または

(string[])dataGridView1.Rows[x].value 
関連する問題