Categorias

Acessando planilhas do MS Excel sem componente Office

Às vezes no dia-a-dia de nosso trabalho, precisamos acessar várias planilhas do Excel, sendo que se o servidor não possui o MS Office ficamos na mão.
Para resolver este problema vamos criar uma classe para acessar o Excel e uma Interface para criarmos um Excel-QueryAnalizer.

Veremos agora como é simples se comunicar com o excel através do .net.

Criaremos agora a nossa classe de acesso:

Ao criar um arquivo class no visual studio, adicione os nomespace abaixo:

using System.Data.OleDb;
using System.IO;

Após ter feito isso, vamos criar nossa classe, segue abaixo o código:

public class ExcelClass
{
    private string _caminho;
    private string _StringDeConexao;
    public string Caminho
    {
        get
        {
            return _caminho;
        }
        set
        {
            _caminho = value;
        }
    }
  
    public ExcelClass()
    {
   
    }
    public DataSet DsExcel(string _query)
    {
     _StringDeConexao = @"Provider=Microsoft.Jet.OLEDB.4.0;";
     _StringDeConexao += "Data Source=" + _caminho + ";";
     _StringDeConexao += "Extended Properties='Excel 8.0;HDR=YES;'"; 
        using (OleDbConnection _cn = new OleDbConnection(_StringDeConexao))
        {
            _cn.Open();
            OleDbDataAdapter _adapter = new OleDbDataAdapter(_query, _cn);
            DataSet ds = new DataSet("EXCEL");
            _adapter.Fill(ds);
            return ds;
        }
    }
}

# Com a classe criada, vamos agora criar a interface web para usarmos está classe.

Ao criar um WebForm.aspx, adicione um TextBox,Buttom e um GridView.
Como feito na imagem abaixo:

Agora dê dois cliques no Buttom e adicione o código abaixo:

Rode sua aplicação e veja o programa em execução: