2010-11-21 3 views
5

Может ли кто-нибудь помочь мне прочитать простую таблицу Excel в приложении C#? Я хотел бы иметь возможность перебирать каждую строку и иметь дескриптор для каждого столбца.C# read excel рабочий лист

Thanks, rod.

ответ

2

Общий метод заключается в использовании Excel COM Interop. Быстрый google найдет много учебников. Вот один для создания листа - он должен указывать на вас в направлении (чтение почти одинаково).

Альтернативным методом является использование ADO.Net. Это действительно реально, если ваш лист Excel хорошо сформирован как таблица (т. Е. База данных), но проще, чем подход interop.

+0

ADO не только легче, но и быстрее. –

+0

Действительно? Думаю, это имеет смысл. Я сравнивал Excel ADO.Net только с соответствующими базами данных с SQL-запросами, а затем он очень медленный, но это связано прежде всего с тем, что Excel не поддерживает индексы базы данных. – winwaed

0

Хотя Excel COM Interop работает, на компьютере-клиенте требуется установить Excel. Если это не проблема, тогда все хорошо, но если это возможно, вы можете рассмотреть возможность просмотра библиотеки Aspose.Cells (без аффилиации, которую они использовали раньше). Они просты и мощны, хотя и несут коммерческую лицензионную стоимость.

1

Если вы собираетесь открывать книгу Excel 2007 или 2010 (формат ooxml), вы можете загрузить Open XML SDK 2.0 for Microsoft Office (что не требует наличия офиса MS).

+0

В любой версии до Excel 2007 вы можете использовать Office Primary Interop Assemblies] (используя COM Interop, для которого требуется наличие MS-офиса). –

+1

Учебное пособие с использованием Open XML SDK: http://msdn.microsoft.com/en-us/library/bb507946.aspx, учебное пособие с использованием COM Interop: http://dotnetperls.com/excel-interop –

0

Я использовал ADO.NET и Jet в прошлом. Будьте предупреждены, что если у вас есть столбцы, которые явно не одного типа, вы увидите странные вещи. Jet пытается присвоить тип данных столбцу на основе первых нескольких значений. Самое приятное, что вы можете запросить таблицу, как таблицу.

Смежные вопросы