Ответ 1
-
Jet/ACE OLE DB
либо прочитайте рабочий лист как строки, либо как типизированные столбцы, чтобы вы либо потеряли точность чисел, либо у вас должны быть заголовки в первой строке. Таким образом, их следует избегать. - Никакая библиотека не поддерживает XLS B.
- Скорость.
- Для большого XLS время чтения для
NPOI
:Jet
:Koogra
:EDR
равно 14: 8: 7: 5. - Для того же XLS X время
EPPlus
:NPOI
:Koogra
:EDR
равно 52: 36: 20: 16. - Для относительно небольших файлов со многими вкладками
EPPlus
может быть немного быстрее, чемEDR
.
- Для большого XLS время чтения для
- Ошибки (# DIV/0!, #VALUE!) и т.д.
-
EDR
иKoogra
явно не поддерживают ошибки.EDR
читает их как обычные строки,Koogra
- как пустые ячейки. -
NPOI
иEPPlus
do.
-
- Koogra читает даты как цифры [OLE date], и они неотличимы от реальных чисел. Также он иногда неправильно считывает числа со многими десятичными цифрами.
EDR
получает этот штраф. Итак, нетKoogra
. -
NPOI
сложный, 5 dll 4 МБ.Koogra
иEDR
просты, 200 КБ и две dll (сами и zip) каждый. -
EDR
работает какIDataReader
, поэтому он последовательно считывает данные. Он также имеет встроенную функцию для полученияDataSet
. С последовательным чтением вы можете пройти только первый лист в рабочей книге.Koogra
поддерживает произвольный доступ к ячейкам и листам. -
EDR
основан наSharpZip
,Koogra
основан наIonic.Zip
. Первая позволяет открыть файл с .zip aStream
, который может быть полезен для других частей проекта.
Я не рассматривал аспекты NPOI
, поэтому без необходимости различать ошибки я бы пошел с EPPlus
для .xlsx и с EDR для чтения .xls.