Codificação e Resultado Final do Projeto: Gerando XLS a partir de uma Tabela - Parte 2

Neste artigo veremos a toda a codificação e o resultado final de nossa aplicação, com o XLS gerado.

Olá pessoal, neste artigo veremos a codificação de nosso projeto e o resultado final, gerando assim um arquivo XLS (que pode ser aberto no Excel) a partir de uma determinada tabela, indicada pelo usuário. Acompanhem:

Apenas ressaltando que este artigo foi feito já levando em conta que o leitor tem os conceitos básicos de ADO.NET para manipulação de dados entre a aplicação e o banco.

Sem mais delongas, vá ao sourcecode deste formulário e crie o método GerarXLS, como podemos ver abaixo (com comentários logo após o código):


private void GerarXLS() { using (StreamWriter sw = File.CreateText(txtArquivo.Text)) { string conexao = String.Format("Server=;Database=;Trusted_Connection=True", txtServidor.Text, txtDatabase.Text); using (SqlConnection objConexao = new SqlConnection(conexao)) { string sqlCommand = "SELECT * FROM " + txtTabela.Text; SqlCommand objCommand = new SqlCommand(sqlCommand, objConexao); try { objConexao.Open(); SqlDataReader dr = objCommand.ExecuteReader(); while (dr.Read()) { sw.WriteLine(dr["ProductName"].ToString() + "\t" + dr["UnitPrice"].ToString()); } MessageBox.Show("Arquivo " + txtArquivo.Text + " Gerado com Sucesso!"); } catch (Exception ex) { MessageBox.Show("Ocorreu o seguinte erro: " + ex.Message); } finally { objConexao.Close(); } } } }

- Começamos instanciando um objeto da classe StreamWriter, chamando seu método CreateText, para criar o arquivo XLS, passando como parâmetro o nome do arquivo, que será digitado pelo usuário o campo txtArquivo.Text.

- Depois criamos uma variável que recebe a string de conexão, montada por meio do String.Format, que recebe os parâmetros Server e Database, que serão respectivamente o nome do Servidor e o nome do Database, informado pelo usuário.

- Logo após instancio um objeto da classe SqlConnection, passando como parâmetro a variável criada anteriormente.

- Crio uma variável que recebe a instrução SELECT para consultar a tabela no banco, e concateno a instrução com o txtTabela.Text, onde será digitado pelo usuário o nome da tabela.

- Instancio um objeto da classe SqlCommand, passando como parâmetro a variável com a instrução SQL e o objeto de conexão com o banco.

- Abro um bloco try, onde abro a conexão com o banco, crio um objeto da classe SqlDataReader, que recebe o método ExecuteReader do objeto da classe SqlCommand.

- Uso um laço while para que, enquanto os dados forem lidos no banco, o objeto da classe StreamWriter, criado no início da codificação, use o método WriteLine para escrever os dados das colunas ProductName e UnitPrice (neste exemplo só serão usados estas 2 colunas, pertencentes à tabela Products).

- Exibo uma mensagem com a confirmação. Ao final, abro um bloco catch para capturar erros, e um bloco finally (que é chamado obrigatoriamente) para fechar a conexão com o banco.

Lembrando que este é um exemplo levando em conta que o usuário já conheça corretamente o nome do Servidor, do Database e da Tabela do banco de dados.

Agora crie o método AbrirXLS, note que o mesmo é bem simples, feito com poucas linhas de código:

private void AbrirXLS() { try { System.Diagnostics.Process process = new System.Diagnostics.Process(); process.EnableRaisingEvents = true; process.StartInfo.FileName = txtArquivo.Text; process.Start(); } catch (Exception ex) { MessageBox.Show("Ocorreu o seguinte erro: " + ex.Message); } }

- Apenas instanciei um objeto da classe Process, do namespace Diagnostics, responsável por abrir meu arquivo XLS.

Crie o evento click dos botões, dando dois cliques neles e chame os respectivos métodos:


private void btnAbrirXLS_Click(object sender, EventArgs e) { AbrirXLS(); } private void btnGerarXLS_Click(object sender, EventArgs e) { GerarXLS(); }

Aperte F5 para rodar a aplicação, digite corretamente as informações do banco e clique no botão Gerar XLS, como mostra a Figura 01:

Figura 01 – Tela do Gerador de XLS com informações preenchidas.

Se tudo correu bem, é pra ser exibido um MessageBox, como o que mostra a Figura 02:

Figura 02 – Mensagem de Confirmação.

Finalizando, clique no botão para ver o resultado no Excel, como vemos na Figura 03:

Figura 03 – Arquivo Excel gerado após a execução do Gerador de XLS.

Assim podemos ter rapidamente os dados de uma determinada tabela em um arquivo do Excel.

Assim finalizo o artigo. Muito obrigado a todos!

Créditos à Luiz Maia, que fez as videoaulas e ao Portal Linha de Código, por onde pude baixá-las (mediante assinatura), estudá-las e posteriormente fazer este artigo.

Um abraço, e até o próximo artigo.

Wellington Balbo de Camargo

wellingtonbalbo@gmail.com


Artigos relacionados