none
Imprimindo dados de um DataGrid RRS feed

  • Pergunta

  • Pessoal,

    Preciso pegar os dados de um datagrid e imprimir. Alguém sabe onde posso achar algo relacinado para que eu possa aplicar no meu código, por favor.

    Obrigado,
    quinta-feira, 25 de fevereiro de 2010 17:18

Respostas

  • Hello, tenta usar este codigo, este codigo grava a informacao num texto e tu podes imprimir...

     String strDestinationFile;
                strDestinationFile = "C:\\output.txt";
                TextWriter tw = new StreamWriter(strDestinationFile);

                //Escreve o titulo
                for (int x = 0; x < dataGridView1.Columns.Count; x++)
                {
                    tw.Write( dataGridView1.Columns[x].HeaderText);
                    if (x != dataGridView1.Columns.Count - 1)
                    {
                        tw.Write(", ");
                    }

                }
                tw.WriteLine();

                //escreve a informacao
                for (int x = 0; x < dataGridView1.Rows.Count - 1; x++)
                {
                    for (int y = 0; y < dataGridView1.Columns.Count; y++)
                    {
                        tw.Write(dataGridView1.Rows[x].Cells.Value);
                        if (y != dataGridView1.Columns.Count - 1)
                        {
                            tw.Write(", ");
                        }
                    }
                    tw.WriteLine();
                }
                tw.Close();


    Just Be Humble Malange!
    • Sugerido como Resposta Daniel Ianegitz sábado, 27 de fevereiro de 2010 12:08
    • Marcado como Resposta rodrigues.lds sábado, 27 de fevereiro de 2010 17:48
    sábado, 27 de fevereiro de 2010 07:48
    Moderador
  • Gostei muito do código da Malange, Obrigado!!

    Só estava com um probleminha no contador da coluna, adicionei o index, coloquei em um try catch e está funcionando:

    try
                {
                    String strDestinationFile;
                    strDestinationFile = "C:\\output.txt";
                    TextWriter tw = new StreamWriter(strDestinationFile);

                    //Escreve o titulo
                    for (int x = 0; x < grd1.Columns.Count; x++)
                    {
                        tw.Write(grd1.Columns[x].HeaderText);
                        if (x != grd1.Columns.Count - 1)
                        {
                            tw.Write(", ");
                        }

                    }
                    tw.WriteLine();

                    int cont = 0;
                    //escreve a informacao
                    for (int x = 0; x < grd1.Rows.Count - 1; x++)
                    {
                        for (int y = 0; y < grd1.Columns.Count; y++)
                        {
                            tw.Write(grd1.Rows[x].Cells[y].Value);
                            if (y != grd1.Columns.Count - 1)
                            {
                                tw.Write(", ");
                            }
                        }
                        tw.WriteLine();
                        cont = x;
                    }
                    tw.Close();
                    MessageBox.Show(cont.ToString() + " Linhas exportadas com sucesso!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);               
                }           
    sábado, 27 de fevereiro de 2010 12:09

Todas as Respostas

  • Rodrigues,

    Dá uma olhada nesse código em VB.NET para você ter uma base...

    http://social.msdn.microsoft.com/forums/pt-BR/vsvbasicpt/thread/77b8be29-9725-4f12-8aad-dd1fcf0b67e7/


    Para facilitar joga o código no conversor:

    http://www.developerfusion.com/tools/convert/vb-to-csharp/


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quinta-feira, 25 de fevereiro de 2010 17:25
  • Hello, tenta usar este codigo, este codigo grava a informacao num texto e tu podes imprimir...

     String strDestinationFile;
                strDestinationFile = "C:\\output.txt";
                TextWriter tw = new StreamWriter(strDestinationFile);

                //Escreve o titulo
                for (int x = 0; x < dataGridView1.Columns.Count; x++)
                {
                    tw.Write( dataGridView1.Columns[x].HeaderText);
                    if (x != dataGridView1.Columns.Count - 1)
                    {
                        tw.Write(", ");
                    }

                }
                tw.WriteLine();

                //escreve a informacao
                for (int x = 0; x < dataGridView1.Rows.Count - 1; x++)
                {
                    for (int y = 0; y < dataGridView1.Columns.Count; y++)
                    {
                        tw.Write(dataGridView1.Rows[x].Cells.Value);
                        if (y != dataGridView1.Columns.Count - 1)
                        {
                            tw.Write(", ");
                        }
                    }
                    tw.WriteLine();
                }
                tw.Close();


    Just Be Humble Malange!
    • Sugerido como Resposta Daniel Ianegitz sábado, 27 de fevereiro de 2010 12:08
    • Marcado como Resposta rodrigues.lds sábado, 27 de fevereiro de 2010 17:48
    sábado, 27 de fevereiro de 2010 07:48
    Moderador
  • Gostei muito do código da Malange, Obrigado!!

    Só estava com um probleminha no contador da coluna, adicionei o index, coloquei em um try catch e está funcionando:

    try
                {
                    String strDestinationFile;
                    strDestinationFile = "C:\\output.txt";
                    TextWriter tw = new StreamWriter(strDestinationFile);

                    //Escreve o titulo
                    for (int x = 0; x < grd1.Columns.Count; x++)
                    {
                        tw.Write(grd1.Columns[x].HeaderText);
                        if (x != grd1.Columns.Count - 1)
                        {
                            tw.Write(", ");
                        }

                    }
                    tw.WriteLine();

                    int cont = 0;
                    //escreve a informacao
                    for (int x = 0; x < grd1.Rows.Count - 1; x++)
                    {
                        for (int y = 0; y < grd1.Columns.Count; y++)
                        {
                            tw.Write(grd1.Rows[x].Cells[y].Value);
                            if (y != grd1.Columns.Count - 1)
                            {
                                tw.Write(", ");
                            }
                        }
                        tw.WriteLine();
                        cont = x;
                    }
                    tw.Close();
                    MessageBox.Show(cont.ToString() + " Linhas exportadas com sucesso!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);               
                }           
    sábado, 27 de fevereiro de 2010 12:09
  • Thanks.

    Obrigado, apenas pequei o codigo e coloquei aqui...

    Muito obrigado.

    Teclas de onde?

    Just Be Humble Malange!
    sábado, 27 de fevereiro de 2010 12:27
    Moderador
  • Obrigado Pessoal,
    sábado, 27 de fevereiro de 2010 17:48