c# a cok hakim degilim ama umarim yardimci olurum.
Ilk once excell in referansini projeye eklemeniz gerekiyor.

DataTable dt; // excel icindeki verileri datatable icinde store edicez
ExcelApp.Application excelApp = new ExcelApp.Application();
if (excelApp == null)
{
MessageBox.Show("Excel yüklü değil.");
return;
}
ExcelApp.Workbook excelBook = excelApp.Workbooks.Open("./kitap2.xls");
// hangi sayfada islem yapacagimizi sectik
ExcelApp._Worksheet excelSheet = excelBook.Sheets[1];
// sayfadaki butun hucreleri aldik
ExcelApp.Range excelRange = excelSheet.UsedRange;
int satirSayisi = excelRange.Rows.Count; //Sayfanın satır sayısını alır.
int sutunSayisi = excelRange.Columns.Count;//Sayfanın sütun sayısını alır.
// butun sayfayi data table cevirdik, istersen belli bir kisminida alabilirsin
// ToDataTable() fonksiyonunu tanimlayalim
dt = ToDataTable(excelRange,satirSayisi,sutunSayisi);
Exel sayfasini datatable cevirmek icin. gerekli fonksiyon
public DataTable ToDataTable(ExcelApp.Range range,int rows,int cols)
{
DataTable table = new DataTable();
for (int i = 1; i <= rows; i++)
{
if(i == 1)
{ // ilk satırı Sutun Adları olarak kullanıldığından
// bunları Sutün Adları Olarak Kaydediyoruz.
for (int j = 1; j <= cols; j++)
{
//Sütunların içeriği boş mu kontrolü yapılmaktadır.
if (range.Cells[i, j] != null && range.Cells[i, j].Value2 != null)
table.Columns.Add(range.Cells[i, j].Value2.ToString());
else //Boş olduğunda Kaçınsı Sutünsa Adı veriliyor.
table.Columns.Add(j.ToString()+".Sütun");
}
continue;
}
//Yukarıda Sütunlar eklendi
// onun şemasına göre yeni bir satır oluşturuyoruz.
//Okunan verileri yan yana sıralamak için
var yeniSatir = table.NewRow();
for (int j = 1; j <= cols; j++)
{
//Sütunların içeriği boş mu kontrolü yapılmaktadır.
if (range.Cells[i, j] != null && range.Cells[i, j].Value2 != null)
yeniSatir[j-1] = range.Cells[i, j].Value2.ToString();
else // İçeriği boş hücrede hata vermesini önlemek için
yeniSatir[j - 1] = String.Empty;
}
table.Rows.Add(yeniSatir);
}
return table;
}
edit: gerekli namespace leri eklemeyi unutma
using System.Runtime.InteropServices;
butun veriler dt icinde istedigin gibi kullanabilirsin
ornegi buradan aldim. Incelemekte fayda var