2015-06-01 12 views
10

Sì, Koogra legge solo. EPPlus supporta solo .xlsx ed è bug in casi limite.Qual è la conoscenza comune di NPOI, EPPlus e Koogra a partire dal 2015?

  • Cos'altro si dovrebbe sapere per scegliere tra di loro?
  • Uno di questi è molto più lento di altri?
  • NPOI sembra complicato ed è una porta Java, quindi vale la pena utilizzare lo ?
  • Si dovrebbe utilizzare EPPlus per .xlsx e NPOI per .xls?
  • Qual è la conoscenza generale di loro oggi?

risposta

7
  1. Jet/ACE OLE DB sia leggere foglio di lavoro come stringhe, o come colonne digitati, in modo che sia perdere i numeri di precisione o è necessario che le intestazioni in prima fila. Quindi, devono essere evitati.
  2. Nessuna libreria supporta XLS B.
  3. Velocità.
    • Per una grande XLS, il tempo di lettura per NPOI: Jet: Koogra: EDR è 14: 8: 7: 5.
    • Per lo stesso XLS X, il tempo per EPPlus: NPOI: Koogra: EDR è 52: 36: 20: 16.
    • Per file relativamente piccoli con molte schede EPPlus può essere un po 'più veloce di EDR.
  4. errori (# DIV/0 !, # valore!), Ecc
    • EDR e Koogra non supportano esplicitamente gli errori. EDR li legge come al solito stringhe, Koogra - come celle vuote.
    • NPOI e EPPlus fare.
  5. Koogra legge date come numeri di [OLE date] e sono indistinguibili dai numeri reali. Inoltre a volte legge numeri con cifre decimali diverse in modo errato. EDR ottiene questa multa. Quindi, no a Koogra.
  6. NPOI è complicato, 5 dll di 4 MB. Koogra e EDR sono semplici, 200 KB e due DLL (loro stessi e zip) ciascuno.
  7. EDR funziona come IDataReader, quindi legge i dati in modo sequenziale. Ha anche una funzione integrata per ottenere un DataSet. Con la lettura sequenziale puoi solo passare attraverso il primo foglio nel libro di lavoro. Koogra supporta l'accesso casuale a celle e fogli.
  8. EDR è basato su SharpZip, Koogra è basato su Ionic.Zip. Il primo consente di aprire un file da .zip a Stream che può essere utile per altre parti del progetto.

Non ho guardato la scrittura gli aspetti della NPOI, quindi senza la necessità di distinguere gli errori, vorrei andare con EPPlus per .xlsx e con EDR per la lettura .xls.

+0

Perché EPPlus per .xlsx se l'EDR sta leggendo più velocemente, come hai detto in 3.? – titol

+1

@titol Bene, perché l'ho già testato e anche perché EDR è più veloce per file molto molto grandi, circa 100 megabyte. Per file più piccoli di circa 2 megabyte, EPPlus è più veloce. E funziona solo, non è necessario avvolgere DataSet di EDR in un proprio modello di dati simile a Excel. –

+0

['Koogra'] (https://sourceforge.net/projects/koogra/) sembra non mantenuto. – xmedeko