Картинка блога

Microsoft предоставляет несколько способов для решения этой задачи. Все они требуют предустановленного Office соответствующей версии.

  • Автоматизация Excel или другого Office приложения с помощью interop (m_objExcel = new Excel.Application();).
  • Доступ к файлу через ODBC (об этом методе пойдет речь в этой статье).
  • Использование OpenXML SDK (только для Office файлов с окончанием «X» — xlsx, docx).

Согласно сайту ConnectionStrings строка до данных будет выглядеть таким образом

Provider=Microsoft.ACE.OLEDB.12.0; Data Source=c:\myFolder\myExcel2007file.xlsx; Extended Properties="Excel 12.0 Xml; HDR=YES";

После этого его можно читать стандартным ADO.NET способом. А можно и не стандартным, например LINQ. Хороший LINQ to Excel провайдер предложен блогом Solid Code. Исходной код на C# можно взять здесь. А генератор кода для Entity — здесь.

Метод Main и класс Person являются примерами. Остальной код — функциональным.

Метки:,

14 комментариев в “Чтение Excel файлов (XLS, XLSX) из C#”

  1. Спасибо огромное за пример.

  2. +1 к первому комменту

  3. Чет ниче я не поняла из прочитанного, кроме смысла.

  4. А что это за программка такая «C#»?

  5. С# — это не программа. Это такой язык программирования. 🙂

  6. [url=http://chinabrend.ru/]Antoninich[/url]
    Статья для программистов. Простому смертному трудно разобраться.

  7. С ума сойти)) Мне даже в голову не приходило, что из программы на дотнете можно читать файлы Excel при помощи ADO.NET, а уж тем более через LINQ или Entity. Всегда использовал объекты автоматизации со всеми их «прелестями».

  8. познавательно, может когда нибудь пригодится.

  9. Раньше трудно было работать в этой программе, но сейчас она самая моя любимая! Спасибо!

  10. А есть ли какая-нибудь программка для чтения файлов Ворда и Экселя которую можно бесплатно скачать? Так называемое Фри Вэир…

  11. Если скачать, то как минимум OpenOffice. Ну а если интернет нормальный, то просто Google Docs.

  12. Какими компонентами нужно связать Excel и C#

  13. А если файлов очень много, какой из способов будет самым быстрым?

  14. Можно поробовать NPOI