Desenvolvimento - C#

Lendo um arquivo do Excel “XLS” com CSharp

Este artigo explica como acessar um arquivo “XLS” Excel e mostrar os dados do mesmo em um DataGridView utilizando o Visual Studio C#.

por Antonio Lucas Finotti Pereira



Vamos criar um novo projeto:

No Project types, vamos selecionar Visual C# e Windows, nos Templates, selecionaremos um Windows Application.

Os campos:

Name: Nome do seu projeto.

Location: Local onde o projeto será criado.

Solution Name: nome do Projeto “quando é preenchido o campo Nome, este campo é preenchido automaticamente”.

A opção Create directory for solution, cria um diretório com o nome da sua aplicação.

Irá aparecer um form “em branco”, deixe este form parecido com o form abaixo:

Usaremos um Button e um DataGridView.

Antes de inserir o código do evento Click do botão, vamos inserir a linha using System.Data.OleDb;” para poder acessar a planilha em excel.

Código do Evento Click do botão:

OpenFileDialog vAbreArq = new OpenFileDialog();

vAbreArq.Filter = "*.xls | Microsoft Excel";

vAbreArq.Title = "Selecione o Arquivo";

if (vAbreArq.ShowDialog() = DialogResult.OK)

{

DataSet ds = new DataSet();

OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=" + vAbreArq.FileName + ";" +

"Extended Properties=Excel 8.0;");

OleDbDataAdapter da = new OleDbDataAdapter("Select * From [Plan1$]", conexao);

da.Fill(ds);

vGrade.DataSource = ds.Tables[0];

vGrade.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader;

conexao.Close();

}

Explicação do Código:

Instanciando o objeto OpenFileDialog para abrir uma caixa de dialogo. “igual quando você vai abrir um arquivo no próprio Excel”.

OpenFileDialog vAbreArq = new OpenFileDialog();

Inserindo um filtro, para a caixa de dialogo trazer somente arquivos com extensão XLS.

vAbreArq.Filter = "*.xls | Microsoft Excel";

Titulo da Caixa de Dialogo.

vAbreArq.Title = "Selecione o Arquivo";

DataSet : Utilizado para trabalhar Offline, este dataset será preenchido pelo SQL do DataAdapter.

DataSet ds = new DataSet();

Connection : Abertura da Conexão com o Arquivo.

OBS: vAbreArq é o nome dado ao Objeto OpenFileDialog, e a propriedade FileName retorna o Nome e Caminho do arquivo selecionado na caixa de dialogo.

OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=" + vAbreArq.FileName + ";" +

"Extended Properties=Excel 8.0;");

Abre Conexão com o arquivo.

Conexao.Close();

DataAdapter : Usado para executar comandos em Sql.

OleDbDataAdapter da = new OleDbDataAdapter("Select * From [Plan1$]",conexao);

Preenche o DataSet com o Conteúdo do Sql do DataAdapter.

da.Fill(ds);

A propriedade DataSource do DataGridView é usada para falar de onde o datagridview irá pegar que será mostrado por ele. No dataset podemos criar várias tabelas, portanto na propriedade tables dele temos que informar qual a tabela que vamos usar no datagridview.

vGrade.DataSource = ds.Tables[0];

Essa linha é utilizada configurar a largura das colunas do datagridview de acordo com o tamanho dos textos.

vGrade.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader;

Fecha Conexão com o arquivo.

Conexao.Close();

Antonio Lucas Finotti Pereira

Antonio Lucas Finotti Pereira - Pós-Graduado em Tecnologia em Desenvolvimento de Softwares no Centro Universitário SENAC (S.J. do Rio Preto), Graduado em Ciência da Computação na Universidade Paulista UNIP (S. J. do Rio Preto) e Programador de Micro Computador no SENAC (Barretos).
Atualmente atua como Analista / Desenvolvedor de Sistemas nas linguagens C#.Net (Aplicações Desktop, Web e Mobile), Visual Basic 6 e VBA. Possui conhecimentos nos bancos de dados FireBird, MySql, Sql Server e Oracle.