Если необходимо просто получить несколько записей из Excel файла, то стоит воспользоваться ранним связыванием. Для этого необходимо подключить Microsoft.Office.Interop.Excel.dll и Office.dll.
Вот один из способов:
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
. . .
try
{
_conn.Open();
// Создание приложения Excel.
m_app = new Excel.ApplicationClass();
Excel.Range rg = null;
// Приложение "невидимо".
m_app.Visible = false;
// Приложение управляется пользователем.
m_app.UserControl = true;
// Добавление книги Excel.
m_workBook = m_app.Workbooks.Open(@"D:\test.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Связь со страницей Excel.
m_workSheet = m_app.ActiveSheet as Excel.Worksheet;
Int32 row = 1;
List<String> arr = new List<string>();
while (m_workSheet.get_Range("a" + row, "a" + row).Value2 != null)
{
. . .
// Читаем данные из ячейки
Arr.Add( m_workSheet.get_Range("a" + row, "a" + row).Value2.ToString().Trim());
row++;
. . .
}
}
finally
{
// Закрытие книги.
m_workBook.Close(false, "", null);
// Закрытие приложения Excel.
m_app.Quit();
m_workBook = null;
m_workSheet = null;
m_app = null;
GC.Collect();
}
Для более детального изучения данной темы, рекомендую ознакомиться со следующими статьями:
Объектная модель Excel с точки зрения разработчика под .NET
http://www.sql.ru
http://www.rsdn.ru
http://msdn.microsoft.com