Lendo uma Planilha do Excel com C#
Há um tempo atrás escrevi um post sobre como fazer uma leitura de arquivo Word utilizando o C#. Achei que para fosse fazer a mesma coisa para o Excel, mas diferentemente, vou fazer uma conexão para acessar o Excel. Isso mesmo! Como se fosse um banco de dados.
Para começar, vamos mostrar como está a nossa planilha no Excel, que peguei de um exemplo de outro colega, e vamos ver quais as informações importantes para o nosso programa em .Net.
Conteúdo da planilha:
Agora crie um projeto, pode ser WindowsForm mesmo e crie a classe de conexão com a planilha, usando OleDB:
OleDbConnection conexao = new OleDbConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\temp\planilha.xlsx;Extended Properties=’Excel 12.0 Xml;HDR=YES’;”);
Nesta conexão, usamos o provider Microsoft.ACE.OLEDB e indicamos o nome da planilha, bem como a versão do Excel.
Criaremos agora um Adapter para executar o comando Select, e também um DataSet para armazenar os dados da consulta:
OleDbDataAdapter adapter = new OleDbDataAdapter(“select * from [Sheet1$]“, conexao);
DataSet ds = new DataSet();
Observem que o nome da planilha tem um símbolo ‘$’ ao final e está entre colchetes ‘[]’.
Agora vamos abrir a conexão, preencher o DataSet e exibir os dados da planilha. Para mostrar os dados você pode criar um grid.
try
{
conexao.Open();
{
conexao.Open();
adapter.Fill(ds);
grid.DataSource = ds;
}grid.DataSource = ds;
catch (Exception ex)
{
Console.WriteLine(“Erro ao acessar os dados: “ + ex.Message);
}
finally
{
conexao.Close();
}
Vale a pena ressaltar que para montar a sua conexão, vai depender da versão do Excel e da extensão. Para mais informações entre nesse site: http://www.connectionstrings.com/excel-2007
É isso! Simples assim! Abraços!
Oii, muito legal o post! PARABÉNS!
ResponderExcluirSó para adicionar uma informação que descobri ao utilizar esse código, esse parte do "[Sheet1$]" deve ser substituído por "[Plan1$]" caso não funcione.
No meu caso funcionou, acho que pelo VS ou Office ou Windows estar em português.
Valeu.
Obrigado pelo comentário. Fico feliz em ter ajudado.
Excluirparabens, forma simples e didatica
ResponderExcluirRafael, Boa tarde. Muito bom seu posto.
ResponderExcluirMas estou com uma duvida: Quero ler os dados da planilha a passar as informações para uma automação que estou desenvolvendo, como fazer?