terça-feira, 24 de agosto de 2010

Lendo os Dados de uma Planilha do Excel C#

    Me deparei com uma situação onde precisava ler os dados de uma planilha de Excel, e depois de muita pesquisa segue a forma mais fácil que eu encontrei para fazer isso usando o C#, porem é necessário que o Excel esteja instalado nas maquinas onde seu programa vai executar.    
    O primeiro passo é adicionar as referências do Excel ao seu projeto, para isso clique com o botão direito em cima do seu projeto na Solution Explorer, vá até a opção Add Reference, depois na aba COM, procure pelo Microsoft Excel (versão) Object Library e depois click em OK.
    Adicione as seguintes bibliotecas ao seu fonte :
using Excel =  Microsoft.Office.Interop.Excel; //*
using System.Reflection;
    * Renomeie esta biblioteca para evitar conflitos de nome e facilitar seu uso dentro do seu programa

    Segue o código comentado para abrir o Excel,  a planilha ler os dados :
// Cria uma instancia do Excel
Excel.Application oXL = new Excel.Application();
// Objeto que vai  conter seu arquivo
Excel.Workbook oWB; 
// Caso você queira que o seu programa  mostre a planilha aberta no Excel deixa está opção como true
oXL.Visible = true; 
//Comando para abrir a  planilha, basta substituir o "endereço da planilha"
oWB = oXL.Workbooks.Open("endereço da planilha", 0, true,  5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, null, null); 
// Pega a planilha ativa, se o Excel não estiver  aberto é a primeira planilha do arquivo
Excel.Worksheet activeSheet = (Excel.Worksheet) oWB.ActiveSheet;
// Pega o  texto da célula A1
string cellA1 = (string) activeSheet.get_Range("A1", Missing.Value).Text;
// Exibe uma mensagem com o texto da célula A1
MessageBox.Show(cellA1);
    Caso você queira pegar uma planilha especifica do arquivo use o seguinte comando :
// Substitua o X pelo número da planilha, é  a ordem que aparece as abas
Excel.Worksheet activeSheet = (Excel.Worksheet) oWB.Worksheets.get_Item(X); 
   Isto é o básico para abrir e ler uma planilha no Excel, mas saiba que é possível alterar fonte, criar formula adicionar conteúdo e alterar dados.


Referências:
http://support.microsoft.com/kb/302084