【问题标题】:How to write a text file from a .NET DataGridView control cell values?如何从 .NET DataGridView 控件单元格值写入文本文件?
【发布时间】:2012-01-17 10:28:33
【问题描述】:

我有以下代码应该循环遍历我的 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();

【问题讨论】:

  • 克里斯的回答是正确的——你需要遍历单元格和行。我提出的一个建议是在行和单元格集合上使用 foreach - 这将稍微整理代码并节省需要从行集合中获取每一列查找的行。

标签: c# for-loop datagridview streamwriter


【解决方案1】:
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." );

【讨论】:

  • 欢迎来到 Stackoverflow!你能详细说明一下吗?
【解决方案2】:
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 循环会更干净。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多