Blog

Exportar dados de uma tabela para o formato Excel (xls)


Exportar dados de uma tabela para um arquivo excel (xls) utilizando o .NET Framework é algo muito simples. Para tanto será preciso apenas criar uma estrutura de consulta ADO.NET utilizando um "SqlDataReader", e uma estrutura de escrita em arquivo utilizando a classe "StreamWriter". No exemplo abaixo pode-se observar uma possível situação:

 
// Prepara o arquivo xls para escrita
using (StreamWriter sw = File.CreateText(@"c:\arquivo.xls"))
{
    try
    {
        SqlConnection conn = new SqlConnection("Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;");
        SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE_X", conn);

        // Abre a conexão
        cmd.Connection.Open();

        // Cria o SqlDataReader 
        System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader();

        // Varre a tabela e alimenta o arquivo xls linha a linha
        while (dr.Read())
        {
            sw.WriteLine(dr["COLUNA_A"].ToString() + "\t" +
                         dr["COLUNA_B"].ToString() + "\t" +
                         dr["COLUNA_C"].ToString() + "\t" +
                         dr["COLUNA_D"].ToString());
        }

        // Fecha a conexão
        cmd.Connection.Close();

        // Mensagem de sucesso
        MessageBox.Show("Arquivo gerado com sucesso.");
    }
    catch (Exception ex)
    {
        // Mensagem de exceção
        MessageBox.Show(ex.Message);
    }
}

C# Excel