2011-12-10 78 views
3

我有以下代碼應循環遍歷我的DataGridView中的所有行,並將其所有單元格值寫入文本文件。
但是,它輸出所有行,但只輸出每個行的第一個單元格,而不是其他三個單元格。如何從.NET DataGridView控件的單元格值寫入文本文件?

string file_name = "C:\\test1.txt"; 

var objWriter = new System.IO.StreamWriter(file_name); 

int count = dgv.Rows.Count; 

for (int row = 0; row < count; row++) 
{ 
    objWriter.WriteLine(dgv.Rows[row].Cells[0].Value.ToString()); 
} 

objWriter.Close(); 
+0

Chris的回答是正確的 - 你需要遍歷單元格以及行。我建議的一個建議是對行和單元格集合使用foreach - 這樣會稍微清理一些代碼,並且無需從每個列查找中獲取行集合中的行。 –

回答

5
for (int row = 0; row < count; row++) 
    { 
     int colCount = dgv.Rows[row].Cells.Count; 
     for (int col = 0; col < colCount; col++) 
     { 
      objWriter.WriteLine(dgv.Rows[row].Cells[col].Value.ToString()); 

     } 
     // record seperator could be written here. 
    } 

儘管如此,如果你使用了foreach循環這將是清潔的。

0
TextWriter sw = new StreamWriter(@"D:\\file11.txt"); 

     int rowcount = dataGridViewX1.Rows.Count; 
     for (int i = 0; i < rowcount - 1; i++) 
     { 

      sw.WriteLine(dataGridViewX1.Rows[i].Cells[0].Value.ToString()); 
     } 
     sw.Close(); 


     MessageBox.Show("Text file was created."); 
+1

歡迎來到Stackoverflow!你能詳細說明嗎? – dgilperez

相關問題