C#

Como exportar DataGridView para o Excel em C#

Exportar dados de um DataGridView para um arquivo Excel é uma funcionalidade útil em muitas aplicações C#. Isso permite que os usuários salvem e compartilhem informações facilmente. Neste post, vamos explorar como exportar DataGridView para o Excel em C#.

Passo a passo para exportar DataGridView para Excel

Criar um novo projeto

  • Abra o Visual Studio e crie um novo projeto do tipo Windows Forms App.

Adicionar um DataGridView

  • Arraste um controle DataGridView para o seu formulário a partir da Toolbox.

Adicionar um Button para exportar

  • Adicione um Button ao formulário. Este botão será utilizado para exportar os dados do DataGridView para o Excel.

Instalar a biblioteca Interop do Excel

  • Você precisa adicionar uma referência à biblioteca do Excel. Clique com o botão direito no seu projeto no Solution Explorer, vá em “Adicionar” > “Referência”, e na aba “Assemblies”, procure por Microsoft.Office.Interop.Excel. Se não estiver disponível, você pode instalá-la via NuGet:
    Install-Package Microsoft.Office.Interop.Excel
    add reference visual studio

    Adicionar o código para exportar

    • Adicione o seguinte código ao evento Click do botão que você criou:

    Exemplo de código

    using System;
    using System.Windows.Forms;
    using Excel = Microsoft.Office.Interop.Excel;
    
    namespace ExportarDataGridView
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                LoadData(); // Chama método para carregar dados no DataGridView
            }
    
            private void LoadData()
            {
                // Exemplo de dados para o DataGridView
                dataGridView1.DataSource = new[]
                {
                    new { Nome = "Alice", Idade = 25 },
                    new { Nome = "Bob", Idade = 30 },
                    new { Nome = "Charlie", Idade = 35 }
                };
            }
    
            private void buttonExport_Click(object sender, EventArgs e)
            {
                ExportDataGridViewToExcel();
            }
    
            private void ExportDataGridViewToExcel()
            {
                Excel.Application excelApp = new Excel.Application();
                excelApp.Workbooks.Add();
                Excel._Worksheet worksheet = (Excel._Worksheet)excelApp.ActiveSheet;
    
                // Adicionando cabeçalhos
                for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
                {
                    worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
                }
    
                // Adicionando dados
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
                    }
                }
    
                // Exibindo o Excel
                excelApp.Visible = true;
            }
        }
    }

    Explicação do código

    • LoadData: Este método é apenas um exemplo que preenche o DataGridView com alguns dados fictícios. Você pode substituir essa parte pela sua própria lógica de preenchimento;

    • buttonExport_Click: Este método chama a função ExportDataGridViewToExcel() quando o botão é clicado;

    • ExportDataGridViewToExcel: Esta função realiza a exportação dos dados do DataGridView para um arquivo Excel:

      • Cria uma nova instância do Excel e adiciona uma nova pasta de trabalho.
      • Itera pelas colunas do DataGridView para adicionar os cabeçalhos ao Excel.
      • Itera pelas linhas e colunas para copiar os dados do DataGridView para o Excel.
      • Finalmente, torna a aplicação do Excel visível.

    Outro exemplo prático:

    No código abaixo vemos como implementar a exportação de dados de um dataGridView para planilhas do Excel:

    ...
    //instância dentro do partial class
    Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
    ...
       	
       if (meuDataGridView.Rows.Count > 0) {
        try
            {
              XcelApp.Application.Workbooks.Add(Type.Missing);
                    
              for (int i = 1; i < meuDataGridView.Columns.Count + 1; i++) {
                   XcelApp.Cells[1, i] = meuDataGridView.Columns[i - 1].HeaderText;
              }
                    
              for (int i = 0; i < meuDataGridView.Rows.Count - 1; i++) {
    
                   for (int j = 0; j < meuDataGridView.Columns.Count; j++) {
                        	XcelApp.Cells[i + 2, j + 1] = meuDataGridView.Rows[i].Cells[j].Value.ToString();
                   }
              }
                    
                    XcelApp.Columns.AutoFit();
                    XcelApp.Visible = true;
    
           } catch (Exception ex) {
                 	
               MessageBox.Show("Houve um erro: " + ex.Message);
               XcelApp.Quit();
          }
       }

    Exportar um DataGridView para o Excel é uma funcionalidade que pode aumentar a produtividade dos usuários, permitindo a manipulação e o compartilhamento de dados de forma eficiente.

    Este exemplo pode ser expandido com mais funcionalidades, como salvar o arquivo em um local específico, formatar células, ou adicionar gráficos.

    Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

    CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

    CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

    Link do curso: https://go.hotmart.com/L70031146H


    Dúvidas ou sugestões sobre como exportar DataGridView para o Excel em C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
     https://youtube.com/criandobits

    Bene Silva Júnior

    Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *