2011-12-10 37 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

相关问题