Ir ao conteúdo
  • Cadastre-se

Dúvida em exportar para txt em C#


djebs

Posts recomendados

Galera estou com o código abaixo. Ele exporta certinho os dados da grid, só que ele não coloca nenhum dos headers. Como faço pra exportar as colunas inteiras, inclusive os headers das colunas?

namespace sis_visu_ipccV2._0{    class ClassExportarTXT    {        public void exportarDataGridViewParaTxt(DataGridView dgv)        {            System.IO.StreamWriter sw = null;            //Caractere delimitador            string delimitador = "\t"; //tab            //Escolher onde salvar o arquivo            SaveFileDialog sfd = new SaveFileDialog();            sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);            sfd.Filter = "Arquivo txt (*.txt)|*.txt";            //Se usuário escolher nome corretamente e clicar em salvar            if (sfd.ShowDialog() == DialogResult.OK)            {                try                {                    //Pega o caminho do arquivo                    string caminho = sfd.FileName;                    //Cria um StreamWriter no local                    sw = new System.IO.StreamWriter(caminho);                    int qtdColunas = dgv.Columns.Count;                    //Loop em todas as linhas para escrever na stream já com o delimitador.                    foreach (DataGridViewRow dgvLinha in dgv.Rows)                    {                        string linha = null;                        for (int i = 0; i < qtdColunas; i++)                        {                            linha += dgvLinha.Cells[i].Value.ToString() + "  " + delimitador;                        }                        sw.WriteLine(linha);                    }                    //Mensagem de confirmação                    MessageBox.Show("Exportado com sucesso", "Exportado com sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);                }                catch (Exception ex)                {                    MessageBox.Show("Exportado com sucesso", "Exportado com sucesso", MessageBoxButtons.OK);                    //MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);                }                finally                {                    //Fechar stream SEMPRE                    sw.Close();                }            }        }    }}
Link para o comentário
Compartilhar em outros sites

@djebs

 

 

Dê uma olhada na propriedade HeaderText do DataGridViewColumn.

 

 

Exemplo (não testado, serve como base). Coloque antes daquele laço que percorre as linhas.

string linha = "";foreach (DataGridViewColumn dgvColuna in dgv.Columns){     linha += dgvColuna.HeaderText + "  " + delimitador;}sw.WriteLine(linha);

;)

LNW

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...