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 :
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 :
Referências:
http://support.microsoft.com/kb/302084
// 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