到2015年,NPOI,EPPlus和Koogra的常识是什么?

Mik*_*lov 12 excel npoi epplus

是的,Koogra只读.EPPlus仅支持.xlsx并且在边缘情况下是错误的.

  • 在他们之间做出选择还应该知道什么呢?
  • 其中一个比其他人慢得多吗?
  • NPOI似乎很复杂,是一个Java端口,值得使用吗?
  • 是否应该使用EPPlus for .xlsx和NPOI for .xls?
  • 今天关于他们的一般知识是什么?

Mik*_*lov 11

  1. Jet/ACE OLE DB要么将工作表读取为字符串,要么将其作为类型化列,因此要么丢失数字精度,要么必须在第一行中包含标题.因此,他们应该避免.
  2. 没有库支持XLS .
  3. 速度.
    • 对于一个大的XLS,读取的时间NPOI:Jet:Koogra:EDR为14:8:7:5.
    • 出于同样的XLS X,对于时间EPPlus:NPOI:Koogra:EDR52:36:20:16.
    • 对于具有许多选项卡的相对较小的文件,EPPlus可能会快一些EDR.
  4. 错误(#DIV/0!,#VALUE!)等
    • EDR并且Koogra不明确支持错误.EDR读取它们作为通常的字符串,Koogra- 作为空白单元格.
    • NPOIEPPlus做.
  5. Koogra将日期读作[OLE日期]数字,它们与实数无法区分.此外,它有时会错误地读取带有许多小数位数的数字.EDR得到这个好.所以,不,不Koogra.
  6. NPOI很复杂,5个4 MB的dll.Koogra并且EDR很简单,每个200 KB和两个dll(自己和拉链).
  7. EDR作为一个IDataReader,因此它按顺序读取数据.它还具有内置功能DataSet.使用顺序读取,您只能浏览工作簿中的第一张表.Koogra支持随机访问单元格和工作表.
  8. EDR是基于SharpZip,Koogra是基于Ionic.Zip.前者允许从.zip打开一个文件,Stream这对项目的其他部分是有益的.

我没有看过写的方面NPOI,所以不需要区分错误,我会选择EPPlus.xlsx和EDR来读取.xls.