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 PereiraVamos 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();