Каковы общие знания о NPOI, EPPlus и Koogra по состоянию на 2015 год?

Да, Коогра только читает. EPPlus поддерживает только .xlsx и не работает в крайних случаях.

  • Что еще нужно знать для выбора между ними?
  • Один из них намного медленнее других?
  • NPOI кажется сложным и представляет собой порт Java, так что стоит используя?
  • Следует ли использовать EPPlus для .xlsx и NPOI для .xls?
  • Каковы общие знания о них сегодня?

Ответ 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.
  • Ошибки (# 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 a Stream, который может быть полезен для других частей проекта.

Я не рассматривал аспекты NPOI, поэтому без необходимости различать ошибки я бы пошел с EPPlus для .xlsx и с EDR для чтения .xls.